{"id":3307,"name":"cachetools","ecosystem":"pip","repository_url":"https://github.com/tkem/cachetools","issues_count":1348,"created_at":"2025-06-06T16:30:10.535Z","updated_at":"2025-06-06T16:30:10.535Z","purl":"pkg:pypi/cachetools","metadata":{"id":2663184,"name":"cachetools","ecosystem":"pypi","description":"Extensible memoizing collections and decorators","homepage":"https://github.com/tkem/cachetools/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/tkem/cachetools","keywords_array":[],"namespace":null,"versions_count":56,"first_release_published_at":"2014-03-22T12:06:53.000Z","latest_release_published_at":"2025-05-23T20:01:11.000Z","latest_release_number":"6.0.0","last_synced_at":"2025-06-06T00:02:06.262Z","created_at":"2022-04-10T10:16:29.872Z","updated_at":"2025-06-06T00:02:06.262Z","registry_url":"https://pypi.org/project/cachetools/","install_command":"pip install cachetools --index-url https://pypi.org/simple","documentation_url":"https://cachetools.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Environment :: Other Environment","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"cachetools"},"repo_metadata":{"id":15277401,"uuid":"18006791","full_name":"tkem/cachetools","owner":"tkem","description":"Extensible memoizing collections and decorators","archived":false,"fork":false,"pushed_at":"2024-05-01T18:11:35.000Z","size":366,"stargazers_count":2126,"open_issues_count":12,"forks_count":159,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-05-15T02:21:37.951Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tkem.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-03-22T10:15:14.000Z","updated_at":"2024-05-28T19:19:01.338Z","dependencies_parsed_at":"2024-05-01T19:29:04.334Z","dependency_job_id":null,"html_url":"https://github.com/tkem/cachetools","commit_stats":{"total_commits":258,"total_committers":9,"mean_commits":"28.666666666666668","dds":0.03875968992248058,"last_synced_commit":"76e4024fcf2a4f2b6a808f3d28f41527ede5b55b"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkem","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215707131,"owners_count":15919086,"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":"tkem","name":"Thomas Kemmer","uuid":"2833077","kind":"user","description":"","email":"","website":null,"location":"Graz, Austria","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2833077?u=b498fae9ae3931a43a30420d6a2a100ec1ac5db0\u0026v=4","repositories_count":19,"last_synced_at":"2023-04-09T07:16:05.544Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/tkem","funding_links":[],"total_stars":2512,"followers":null,"following":null,"created_at":"2022-11-02T16:23:10.023Z","updated_at":"2024-03-25T17:39:33.347Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkem","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkem/repositories"},"tags":[{"name":"v5.3.3","sha":"1fcadea96ce67d499965b085f0b0b2253b78bb80","kind":"tag","published_at":"2024-02-27T20:00:30.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.3.3","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.3/manifests"},{"name":"v5.3.2","sha":"3889195258e3d874e2b93497ae73261b8c6bb53d","kind":"tag","published_at":"2023-10-24T18:12:28.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.3.2","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.2/manifests"},{"name":"v5.3.1","sha":"8b56caa87f2dc624f3ec453127559ab893616efa","kind":"tag","published_at":"2023-05-27T20:35:49.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.3.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.1/manifests"},{"name":"v5.3.0","sha":"8f0b51661f9def22fb623de09648a2b20f73569b","kind":"tag","published_at":"2023-01-22T22:23:32.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.3.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.3.0/manifests"},{"name":"v5.2.1","sha":"2abfc3682bd76019a3a2b09b0e290e385ce11429","kind":"tag","published_at":"2023-01-08T20:33:45.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.2.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.2.1/manifests"},{"name":"v5.2.0","sha":"36b83c34afdc27df1a0c34f673b27ba06231c833","kind":"tag","published_at":"2022-05-29T20:46:59.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.2.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.2.0/manifests"},{"name":"v5.1.0","sha":"4d53f44bb0a5d9bdb68a83557aa7e7bc9a68d630","kind":"tag","published_at":"2022-05-15T20:38:06.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.1.0/manifests"},{"name":"v5.0.0","sha":"f8a166b63a3f3adef1cb8d2d81417812bddc0240","kind":"tag","published_at":"2021-12-21T20:23:54.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v5.0.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v5.0.0/manifests"},{"name":"v4.2.4","sha":"8b9bbc4b60429bd73a06ff54a8eefd141215acc2","kind":"tag","published_at":"2021-09-30T10:16:49.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.2.4","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.4/manifests"},{"name":"v4.2.3","sha":"bc998ba4278e06f19ab0270c42b8ff7af6448cab","kind":"tag","published_at":"2021-09-29T20:29:38.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.2.3","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.3/manifests"},{"name":"v4.2.2","sha":"e919f2fbfca1c404a9d9e313ddc0a1f4fe119f76","kind":"tag","published_at":"2021-04-27T21:16:25.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.2.2","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.2/manifests"},{"name":"v4.2.1","sha":"16c77042c5734fa465788a386be84fc63cb68e71","kind":"tag","published_at":"2021-01-24T20:35:40.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.2.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"e6acc1eaff5593158933d24ca035d746d5a13899","kind":"tag","published_at":"2020-12-10T20:26:06.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.2.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.2.0/manifests"},{"name":"v4.1.1","sha":"31a78b5238a686d12eb11ba2850a96d9d68f49cd","kind":"tag","published_at":"2020-06-28T19:27:50.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.1.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.1.1/manifests"},{"name":"v4.1.0","sha":"a6258fb26c2b21cf56e84be43807fd5d055480d2","kind":"tag","published_at":"2020-04-08T11:33:17.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.1.0/manifests"},{"name":"v4.0.0","sha":"fa9d4760dc44cd77f5eafd30cbaeed40a3435c96","kind":"tag","published_at":"2019-12-15T19:53:59.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v4.0.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v4.0.0/manifests"},{"name":"v3.1.1","sha":"c530924cdec86855be6322d3e4dd979bfc9250e4","kind":"tag","published_at":"2019-05-23T19:49:33.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v3.1.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"1b67cddadccb89993e9d2567bac22e57e2b2b373","kind":"tag","published_at":"2019-01-29T20:34:02.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v3.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.1.0/manifests"},{"name":"v3.0.0","sha":"90d35075eca92d2064bb87ddc1f19f0bf82311c9","kind":"tag","published_at":"2018-11-04T17:37:48.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v3.0.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v3.0.0/manifests"},{"name":"v2.1.0","sha":"36d864e9584224a6b336654f46b4032994e9b507","kind":"tag","published_at":"2018-05-12T16:22:02.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v2.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"fba5f8a5e8bb48c9ae4eff81d10fe665ff66b066","kind":"tag","published_at":"2017-08-11T16:53:43.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v2.0.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"e27332bc82f4e327aedaec17c9b656ae719322ed","kind":"tag","published_at":"2016-10-03T12:09:49.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v2.0.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v2.0.0/manifests"},{"name":"v1.1.6","sha":"8bb68a235ffd0629a690cfe9a2dd913998f581f1","kind":"tag","published_at":"2016-04-01T10:06:53.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.6","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.6/manifests"},{"name":"v1.1.5","sha":"42853733d0caf68ef5bf5933a377572b05437e2c","kind":"tag","published_at":"2015-10-25T13:59:12.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.5","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"41d521bd38cdd6c6d0352ebf80eeae747e42a509","kind":"tag","published_at":"2015-10-24T20:40:46.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.4","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"4f4b452255f65b0ec2aaca066f13ac1a4b91ea09","kind":"tag","published_at":"2015-09-15T18:52:37.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.3","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"c8c8db1e9cec443f1a15fbac7858b5d8f84506ba","kind":"tag","published_at":"2015-09-15T18:12:30.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.2","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"5cdedd518b7c64839119c667b77b15fc4d0070eb","kind":"tag","published_at":"2015-09-07T18:55:44.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"6a4c6f03a755340602bb786bcf87e47402e8dda7","kind":"tag","published_at":"2015-08-28T18:35:13.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.1.0/manifests"},{"name":"v1.0.3","sha":"37024a77d122665e47593d6159503e9189024604","kind":"tag","published_at":"2015-06-26T06:16:13.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.0.3","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"0ca640f2c88f5a6767bb09da8cab5983665b6d98","kind":"tag","published_at":"2015-06-18T17:45:16.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.0.2","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"87753fea0f7f96cea89629d492a82292356ab350","kind":"tag","published_at":"2015-06-06T13:26:32.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.0.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"03bf4174c85cef51ab07e92212a9d7838a27093b","kind":"tag","published_at":"2014-12-19T17:36:32.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v1.0.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v1.0.0/manifests"},{"name":"v0.8.2","sha":"b624bf83a2930164b74630c8141b8eb1bb659b1a","kind":"tag","published_at":"2014-12-15T18:32:05.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.8.2","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"d7cb99468c24cc6f88c1a71687175c264771bc9b","kind":"tag","published_at":"2014-12-07T16:54:52.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.8.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"35855b5a02a066a51d1eaae670fc5c0efcc3a926","kind":"tag","published_at":"2014-12-03T17:54:24.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.8.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.8.0/manifests"},{"name":"v0.7.1","sha":"827e2f53efcebe2ad11d52d5dbb6e049d1ae7edb","kind":"tag","published_at":"2014-11-22T20:21:08.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.7.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"5385445fa6dfb94e3ab457890bcb9ec94134e997","kind":"tag","published_at":"2014-11-12T07:02:10.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.7.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"482d35f78b643877cbd6cb23fe6b4c2d0f692735","kind":"tag","published_at":"2014-10-23T17:43:55.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.6.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.6.0/manifests"},{"name":"v0.5.1","sha":"44b84324f5e52291753addaf9ab8fc89b2d507d2","kind":"tag","published_at":"2014-09-25T16:08:03.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.5.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"36c792475bc13e4fa6d606146c4144a71d79d2f4","kind":"tag","published_at":"2014-09-23T16:58:48.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.5.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"b210c14c7fb336205625be8d29ece52c2fba6abe","kind":"tag","published_at":"2014-06-16T18:31:45.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.4.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.4.0/manifests"},{"name":"v0.3.1","sha":"a29e4f06015320c2a294aad6a4564f0297e97e49","kind":"tag","published_at":"2014-05-07T16:29:13.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.3.1","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"bf206e065016d76eb4e1b666c77ad892f329ae00","kind":"tag","published_at":"2014-05-07T16:20:33.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.3.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"3b9d81924ae6b4011048096cf12a7cdad5508f30","kind":"tag","published_at":"2014-04-02T18:41:26.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.2.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"35f85f2f78f842b15609c5973f1fdd261c0a6476","kind":"tag","published_at":"2014-03-27T05:17:09.000Z","download_url":"https://codeload.github.com/tkem/cachetools/tar.gz/v0.1.0","html_url":"https://github.com/tkem/cachetools/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkem%2Fcachetools/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-09-07T11:37:53.688Z","dependent_packages_count":1021,"downloads":236071381,"downloads_period":"last-month","dependent_repos_count":62196,"rankings":{"downloads":0.008437162398868686,"dependent_repos_count":0.022927071736056213,"dependent_packages_count":0.02549490377049451,"stargazers_count":2.2178732114591337,"forks_count":5.2104980310230795,"docker_downloads_count":0.010638161285530084,"average":1.2493114236121938},"purl":"pkg:pypi/cachetools","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/cachetools","docker_dependents_count":7523,"docker_downloads_count":4598678061,"usage_url":"https://repos.ecosyste.ms/usage/pypi/cachetools","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/cachetools/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/cachetools/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/cachetools/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/cachetools/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/cachetools/related_packages","maintainers":[{"uuid":"tkem","login":"tkem","name":null,"email":null,"url":null,"packages_count":12,"html_url":"https://pypi.org/user/tkem/","role":null,"created_at":"2023-01-09T09:56:33.220Z","updated_at":"2023-01-09T09:56:33.220Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tkem/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690329,"maintainers_count":292761,"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":561,"unique_repositories_count_past_30_days":32,"recent_issues":[{"uuid":"5573307297","node_id":"PR_kwDOREsdM88AAAABE_iDYw","number":273,"state":"closed","title":"build: bump cachetools from 7.1.8 to 7.2.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-29T07:21:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-24T19:14:31.000Z","updated_at":"2026-09-29T07:21:35.000Z","time_to_close":389214,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.8 to 7.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.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=cachetools\u0026package-manager=uv\u0026previous-version=7.1.8\u0026new-version=7.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/strands-rl/strands-env/pull/273","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-rl%2Fstrands-env/issues/273","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/273/packages"},{"uuid":"5544836559","node_id":"PR_kwDOPK4tyc8AAAABEpIrIQ","number":23,"state":"open","title":"deps: bump the production-dependencies group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-22T20:25:12.000Z","updated_at":"2026-09-22T20:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"production-dependencies","update_count":2,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 2 updates: [pandas](https://github.com/pandas-dev/pandas) and [cachetools](https://github.com/tkem/cachetools).\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.8 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/atlarge-research/Kavier/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlarge-research%2FKavier/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"5526214822","node_id":"PR_kwDOMRnt5M8AAAABEaLVHQ","number":849,"state":"closed","title":"chore(deps): bump the python-dependencies group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-21T19:47:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-21T11:14:56.000Z","updated_at":"2026-09-21T19:47:28.000Z","time_to_close":30751,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":6,"packages":[{"name":"uvicorn","old_version":"0.52.4","new_version":"0.53.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.52","new_version":"2.0.54","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.19.2","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.5","new_version":"3.5.6","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.53.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.52` | `2.0.54` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.2` | `1.20.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.5` | `3.5.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.8` | `7.2.0` |\n\nUpdates `uvicorn` from 0.52.4 to 0.53.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.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\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.52.4...0.53.0\"\u003e0.52.4...0.53.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.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\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/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/098b206ff7b01098561956ff4e7746d05e02acc6\"\u003e\u003ccode\u003e098b206\u003c/code\u003e\u003c/a\u003e Remove timing race from SIGHUP supervisor test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/968f15e5d09df5f6b8959975f18687b9d755862d\"\u003e\u003ccode\u003e968f15e\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3113\"\u003e#3113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d4c08cce9eeabf64695c326b0e45c47c6a0337b\"\u003e\u003ccode\u003e7d4c08c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fe528a480c0aec3aea3ee8ef13251b5216c47ae9\"\u003e\u003ccode\u003efe528a4\u003c/code\u003e\u003c/a\u003e Require explicit opt-in for zttp HTTP/2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fa324a415364563cf45908966435e2480a6b46bf\"\u003e\u003ccode\u003efa324a4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump httpx2 from 2.10.0 to 2.12.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.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.52 to 2.0.54\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.54\u003c/h1\u003e\n\u003cp\u003eReleased: September 15, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [change]\u003c/strong\u003e Binary wheels are no longer built for Python 3.7.  PyPI now rejects wheel\nfiles whose filename does not begin with the normalized project name, and\nthe packaging tools that can be installed on Python 3.7 do not produce\nsuch a filename.  As a result, SQLAlchemy 2.0.44 was the last release to\npublish Python 3.7 wheels to PyPI, and releases 2.0.45 and later have\nbeen available on Python 3.7 only as a source distribution; the wheel\nbuilds for Python 3.7 are now removed.  Python 3.7 remains supported by\nthe 2.0 series.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Fixed issue where the Cython extensions were compiled without the\n\u003ccode\u003efreethreading_compatible\u003c/code\u003e directive, so that they did not declare\nthemselves as safe to run without the GIL.  On a free-threaded Python\ninterpreter such as Python 3.13t or 3.14t, importing SQLAlchemy would\ncause the interpreter to re-enable the GIL, emitting a\n\u003ccode\u003eRuntimeWarning\u003c/code\u003e.  The directive is now set when building for Python\n3.13 and above, and a test has been added which confirms that importing\nSQLAlchemy on a free-threaded build does not enable the GIL.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13592\"\u003e#13592\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.53\u003c/h1\u003e\n\u003cp\u003eReleased: September 14, 2026\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 an expression passed to \u003ccode\u003e_orm.with_expression()\u003c/code\u003e\nthat embedded a \u003ccode\u003e_sql.select()\u003c/code\u003e, such as a correlated\n\u003ccode\u003e_sql.exists()\u003c/code\u003e, would fail to populate the attribute correctly on\nthe second and subsequent executions of an otherwise identical\nstatement, when the \u003ccode\u003e_orm.query_expression()\u003c/code\u003e attribute was loaded\nby a relationship loader that emits a second query, i.e.\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e, \u003ccode\u003e_orm.lazyload()\u003c/code\u003e or\n\u003ccode\u003e_orm.immediateload()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13560\"\u003e#13560\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed memory issue where mapped classes, along with their\n\u003ccode\u003eTable\u003c/code\u003e and \u003ccode\u003e_orm.Mapper\u003c/code\u003e objects, would not be garbage\ncollected after the \u003ccode\u003e_orm.registry\u003c/code\u003e in which they were mapped had\nbeen disposed and dereferenced.  The issue would occur for mappings that\nmade use of \u003ccode\u003e_orm.relationship()\u003c/code\u003e together with constructs such as an\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 `alembic` from 1.19.2 to 1.20.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.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\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 `greenlet` from 3.5.5 to 3.5.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.6 (2026-09-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect a race condition that could lead to garbage collection\nunintentionally being disabled. See \u003ccode\u003ePR 529 \u0026lt;https://github.com/python-greenlet/greenlet/pull/529\u0026gt;\u003c/code\u003e_ by Yurii.\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/abfe740315a9926ff180c622cf02f122c07f9126\"\u003e\u003ccode\u003eabfe740\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e23e3e47df21bbc7a83219621ce4966d349f7d2b\"\u003e\u003ccode\u003ee23e3e4\u003c/code\u003e\u003c/a\u003e Change note for \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/8de830f6df6fefd533fedbe4bb0a2028bcf77372\"\u003e\u003ccode\u003e8de830f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/529\"\u003e#529\u003c/a\u003e from Georggi/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/72d7cacf4cf667f92786db306be095b6041bca5a\"\u003e\u003ccode\u003e72d7cac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/530\"\u003e#530\u003c/a\u003e from python-greenlet/dependabot/github_actions/github...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/ac01b7d1a6b3a4d2477c17a1047af6d0056d69a7\"\u003e\u003ccode\u003eac01b7d\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e18f5a6d2696c031d34cf4933dcdd6a8e37f6f85\"\u003e\u003ccode\u003ee18f5a6\u003c/code\u003e\u003c/a\u003e Simplify GCDisabledGuard constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/6aaf3af698aa7789075a904e5bbb70e24df06553\"\u003e\u003ccode\u003e6aaf3af\u003c/code\u003e\u003c/a\u003e Back to development: 3.5.6\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.5.5...3.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.13.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyJWT 2.14.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/2.14.0/CHANGELOG.rst\"\u003e2.14.0 changelog\u003c/a\u003e for the complete release details and related security advisories.\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.14.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.13.0...2.14.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Harden HMAC key validation against public-key material supplied as JWK,\n  JWKS, array, encoded, BOM-prefixed, DER, or PEM input. See\n  `GHSA-r6x4-923q-g947 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-r6x4-923q-g947\u0026gt;`__,\n  `GHSA-ffc3-869f-jxw9 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-ffc3-869f-jxw9\u0026gt;`__,\n  `GHSA-p4g4-x82p-q773 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-p4g4-x82p-q773\u0026gt;`__,\n  and `GHSA-w2cx-738m-mc7w \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w2cx-738m-mc7w\u0026gt;`__.\n- Reject automatic redirects when ``PyJWKClient`` fetches a JWKS, preventing\n  redirected destinations from being treated as trusted key sources. See\n  `GHSA-9v7f-9g4p-ffgj \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-9v7f-9g4p-ffgj\u0026gt;`__.\n- Limit repeated JWKS refreshes caused by unknown key IDs while preserving\n  normal key-rotation behavior. See\n  `GHSA-2gx3-rcp4-g85q \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-2gx3-rcp4-g85q\u0026gt;`__.\n- Handle deeply nested and malformed JWS/JWK input without uncaught recursion\n  errors or whole-set parsing failures. See\n  `GHSA-8wjv-2p76-3863 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-8wjv-2p76-3863\u0026gt;`__\n  and `GHSA-w6j9-cwv2-h6wq \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w6j9-cwv2-h6wq\u0026gt;`__.\n- Enforce compact JWS encoding rules during decoding. See\n  `GHSA-hxm8-2xgr-2p9m \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-hxm8-2xgr-2p9m\u0026gt;`__.\n- Reject detached-payload arguments for attached JWS inputs. Thanks to `@xclow3n\n  \u0026lt;https://github.com/xclow3n\u0026gt;`__ for reporting this behavior; fixed in commit\n  `37b54877 \u0026lt;https://github.com/jpadilla/pyjwt/commit/37b54877bf7bea67e8149130e96929e3ec798122\u0026gt;`__.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Apply HMAC key validation consistently when keys are loaded through\n  ``PyJWK`` and ``PyJWKClient``. See\n  `GHSA-pxh4-856f-4h89 \u0026amp;lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-pxh4-856f-4h89\u0026amp;gt;`__.\n- Reject empty HMAC keys when represented as JWKs.\n  See `GHSA-pxh4-856f-4h89 \u0026amp;lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-pxh4-856f-4h89\u0026amp;gt;`__.\n\nFixed\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eRaise the documented \u003ccode\u003ePyJWTError\u003c/code\u003e subclass instead of leaking a\u003cbr /\u003e\n\u003ccode\u003eTypeError\u003c/code\u003e when the \u003ccode\u003eexp\u003c/code\u003e, \u003ccode\u003enbf\u003c/code\u003e, or \u003ccode\u003eiat\u003c/code\u003e claim decodes to a\u003cbr /\u003e\nnon-numeric, non-string value such as a list, dict, or \u003ccode\u003enull\u003c/code\u003e.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/jpadilla/pyjwt/commit/c6fe464b356ff4b1ebc9ba62172d331a40aa27df\"\u003e\u003ccode\u003ec6fe464\u003c/code\u003e\u003c/a\u003e release: prepare v2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f5413029ae7a2e31b1367b5303ea86a2f54ccf42\"\u003e\u003ccode\u003ef541302\u003c/code\u003e\u003c/a\u003e style: apply Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/801cd128528c62d9b23fcd161d1a2e1c17982f95\"\u003e\u003ccode\u003e801cd12\u003c/code\u003e\u003c/a\u003e fix: reject public JWK container HMAC keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/af8181ca0bec5e6b372fbba9afbe23702b787ceb\"\u003e\u003ccode\u003eaf8181c\u003c/code\u003e\u003c/a\u003e fix: reject empty HMAC keys from JWKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/ba4853a75fb9676362da17f67d0f64bd18afd4e1\"\u003e\u003ccode\u003eba4853a\u003c/code\u003e\u003c/a\u003e Throttle repeated PyJWKClient refreshes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2798504fa2663364573cf2d1043d8d7fef389499\"\u003e\u003ccode\u003e2798504\u003c/code\u003e\u003c/a\u003e fix: reject DER public keys as HMAC secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/8b4e233a22206b34ec1186e912e75c0b2396ac07\"\u003e\u003ccode\u003e8b4e233\u003c/code\u003e\u003c/a\u003e fix: reject loader-accepted PEM variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1f8180a211256dfe5cf32294b6753f554a5a4258\"\u003e\u003ccode\u003e1f8180a\u003c/code\u003e\u003c/a\u003e fix: format JWS tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/cff1ac55fe5f1096fd05295b269fce053ee290ab\"\u003e\u003ccode\u003ecff1ac5\u003c/code\u003e\u003c/a\u003e Fix redirect handler return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0a795b8e1f6ef08f634aa7086fc41cc6d5ce3e56\"\u003e\u003ccode\u003e0a795b8\u003c/code\u003e\u003c/a\u003e Reject redirects in PyJWKClient fetches\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.13.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.8 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/Serph91P/StreamVault/pull/849","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serph91P%2FStreamVault/issues/849","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/849/packages"},{"uuid":"5469471709","node_id":"PR_kwDOTZpjNs8AAAABDs21bA","number":26,"state":"closed","title":"chore(deps): bump the pip-minor-patch group across 1 directory with 76 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-23T02:15:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-16T02:22:32.000Z","updated_at":"2026-09-23T02:15:41.000Z","time_to_close":604387,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-minor-patch","update_count":76,"packages":[{"name":"langchain","old_version":"1.3.13","new_version":"1.4.0","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-core","old_version":"1.4.9","new_version":"1.6.3","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-openai","old_version":"1.3.5","new_version":"1.6.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langgraph","old_version":"1.2.9","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-checkpoint","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pypdfium2","old_version":"5.11.0","new_version":"5.13.0","repository_url":"https://github.com/pypdfium2-team/pypdfium2"},{"name":"duckdb","old_version":"1.5.4","new_version":"1.5.5","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"joblib","old_version":"1.5.3","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"yfinance","old_version":"1.5.1","new_version":"1.7.0","repository_url":"https://github.com/ranaroussi/yfinance"},{"name":"akshare","old_version":"1.18.64","new_version":"1.18.94","repository_url":"https://github.com/akfamily/akshare"},{"name":"ccxt","old_version":"4.5.64","new_version":"4.5.78","repository_url":"https://github.com/ccxt/ccxt"},{"name":"fastapi","old_version":"0.139.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sse-starlette","old_version":"3.4.5","new_version":"3.4.11","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"ddgs","old_version":"9.14.4","new_version":"9.16.0","repository_url":"https://github.com/deedy5/ddgs"},{"name":"matplotlib","old_version":"3.11.0","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"prompt-toolkit","old_version":"3.0.52","new_version":"3.0.53","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"aiohttp","old_version":"3.14.1","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"aiofile","old_version":"3.11.1","new_version":"3.12.3","repository_url":"https://github.com/mosquito/aiofile"},{"name":"annotated-doc","old_version":"0.0.4","new_version":"0.0.5","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"authlib","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"cachetools","old_version":"7.1.4","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"caio","old_version":"0.10.2","new_version":"0.12.4","repository_url":"https://github.com/mosquito/caio"},{"name":"certifi","old_version":"2026.6.17","new_version":"2026.7.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"2.1.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.9","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cssselect2","old_version":"0.9.0","new_version":"0.10.1","repository_url":"https://github.com/Kozea/cssselect2"},{"name":"curl-cffi","old_version":"0.15.0","new_version":"0.16.3","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"cyclopts","old_version":"4.21.0","new_version":"4.25.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.65.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"griffelib","old_version":"2.1.0","new_version":"2.3.0"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"idna","old_version":"3.18","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"jaraco-functools","old_version":"4.5.0","new_version":"4.6.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jiter","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"joserfc","old_version":"1.7.3","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"langchain-protocol","old_version":"0.0.18","new_version":"0.0.19","repository_url":"https://github.com/langchain-ai/agent-protocol"},{"name":"langgraph-sdk","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langsmith","old_version":"0.10.2","new_version":"0.12.4","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llvmlite","old_version":"0.48.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"multidict","old_version":"6.7.1","new_version":"6.8.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"narwhals","old_version":"2.23.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"numba","old_version":"0.66.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"opentelemetry-api","old_version":"1.43.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.9","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.2","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"peewee","old_version":"4.2.1","new_version":"4.5.1","repository_url":"https://github.com/coleifer/peewee"},{"name":"platformdirs","old_version":"4.10.0","new_version":"4.11.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"7.35.1","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.47.0","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyphen","old_version":"0.17.2","new_version":"0.18.1","repository_url":"https://github.com/Kozea/Pyphen"},{"name":"pytz","old_version":"2026.2","new_version":"2026.3.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"regex","old_version":"2026.7.10","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"simplejson","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"soupsieve","old_version":"2.8.4","new_version":"2.9.2","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tiktoken","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"tqdm","old_version":"4.68.4","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uncalled-for","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/chrisguidry/uncalled-for"},{"name":"wcwidth","old_version":"0.8.2","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webencodings","old_version":"0.5.1","new_version":"0.6.1","repository_url":"https://github.com/CourtBouillon/webencodings"},{"name":"websocket-client","old_version":"1.9.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"yarl","old_version":"1.24.2","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 76 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain](https://github.com/langchain-ai/langchain) | `1.3.13` | `1.4.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.9` | `1.6.3` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.3.5` | `1.6.2` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.9` | `1.2.11` |\n| [langgraph-checkpoint](https://github.com/langchain-ai/langgraph) | `4.1.1` | `4.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pypdfium2](https://github.com/pypdfium2-team/pypdfium2) | `5.11.0` | `5.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.5.4` | `1.5.5` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |\n| [yfinance](https://github.com/ranaroussi/yfinance) | `1.5.1` | `1.7.0` |\n| [akshare](https://github.com/akfamily/akshare) | `1.18.64` | `1.18.94` |\n| [ccxt](https://github.com/ccxt/ccxt) | `4.5.64` | `4.5.78` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.52.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.5` | `3.4.11` |\n| [ddgs](https://github.com/deedy5/ddgs) | `9.14.4` | `9.16.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.0` | `3.11.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.52` | `3.0.53` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.14.1` | `3.14.3` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.14.0` |\n| [aiofile](https://github.com/mosquito/aiofile) | `3.11.1` | `3.12.3` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.4` | `0.0.5` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.2` | `1.8.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.4` | `7.1.8` |\n| [caio](https://github.com/mosquito/caio) | `0.10.2` | `0.12.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.6.17` | `2026.7.22` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.1.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.9` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cssselect2](https://github.com/Kozea/cssselect2) | `0.9.0` | `0.10.1` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.15.0` | `0.16.3` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.21.0` | `4.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.65.0` |\n| griffelib | `2.1.0` | `2.3.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [idna](https://github.com/kjd/idna) | `3.18` | `3.19` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.5.0` | `4.6.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.16.0` | `0.17.0` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.3` | `1.7.5` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [langchain-protocol](https://github.com/langchain-ai/agent-protocol) | `0.0.18` | `0.0.19` |\n| [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.4.2` | `0.4.4` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.10.2` | `0.12.4` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.48.0` | `0.49.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.7.1` | `6.8.0` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.23.0` | `2.26.0` |\n| [numba](https://github.com/numba/numba) | `0.66.0` | `0.67.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.43.0` | `1.44.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.9` | `3.12.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.2` | `26.3` |\n| [peewee](https://github.com/coleifer/peewee) | `4.2.1` | `4.5.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.10.0` | `4.11.8` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.35.1` | `7.36.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.47.0` | `2.49.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyphen](https://github.com/Kozea/Pyphen) | `0.17.2` | `0.18.1` |\n| [pytz](https://github.com/stub42/pytz) | `2026.2` | `2026.3.post1` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.10` | `2026.9.10` |\n| [simplejson](https://github.com/simplejson/simplejson) | `4.1.1` | `4.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.4` | `2.9.2` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.13.0` | `0.14.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.68.4` | `4.70.1` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uncalled-for](https://github.com/chrisguidry/uncalled-for) | `0.3.2` | `0.4.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.2` | `0.8.3` |\n| [webencodings](https://github.com/CourtBouillon/webencodings) | `0.5.1` | `0.6.1` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.0` | `1.9.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.2` | `1.24.5` |\n\n\nUpdates `langchain` from 1.3.13 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/langchain-ai/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-perplexity==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-perplexity==1.3.2\u003c/p\u003e\n\u003cp\u003erelease(perplexity): 1.4.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37993\"\u003e#37993\u003c/a\u003e)\nfeat(perplexity): \u003ccode\u003ebind_tools\u003c/code\u003e and Responses-API tool round-trip (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37934\"\u003e#37934\u003c/a\u003e)\nhotfix(openai): min core dep (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37990\"\u003e#37990\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.3.5\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.4.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38983\"\u003e#38983\u003c/a\u003e)\nchore: bump pillow from 12.2.0 to 12.3.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38999\"\u003e#38999\u003c/a\u003e)\nfeat(core): add \u003ccode\u003ereasoning_effort\u003c/code\u003e as a standard chat model parameter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38887\"\u003e#38887\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38797\"\u003e#38797\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain==1.3.18\u003c/p\u003e\n\u003cp\u003edocs(langchain): runnable \u003ccode\u003elangchain.mcp\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39976\"\u003e#39976\u003c/a\u003e)\nfeat(langchain): \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace, \u003ccode\u003eMCPAdapter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39939\"\u003e#39939\u003c/a\u003e)\nperf(anthropic,langchain): omit middleware trace inputs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40098\"\u003e#40098\u003c/a\u003e)\nfix(langchain): include model destination in agent tool routing (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38355\"\u003e#38355\u003c/a\u003e)\nchore(langchain): bump vcrpy test dependency minimum to \u003ccode\u003e\u0026gt;=8.2.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39942\"\u003e#39942\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain==1.4.0a4\u003c/h2\u003e\n\u003cp\u003eInitial release\u003c/p\u003e\n\u003cp\u003erelease(langchain): 1.4.0a4\ntest(langchain): cover mixed-era ClientGroup and group elicitation\nUpdate libs/langchain_v1/langchain/mcp/adapter.py\nfix(langchain): drive MCP elicitation via member session for fastmcp 4.0.1\nfix(sdk): use latest fastmcp and rm reentrant impl\ncr\ncr\nrefactor(langchain): inline MCP client arming into \u003ccode\u003e__init__\u003c/code\u003e\nrefactor(langchain): stamp an arm marker instead of introspecting the handler closure\nfix(langchain): gate MCP interrupt routing on the negotiated protocol era\nrefactor(langchain): drop MCP \u003ccode\u003eelicitation\u003c/code\u003e flag, derive interrupt routing from the client\nfix(sdk): add _ReentrantClientGroup\nfix(langchain): narrow \u003ccode\u003eMCPAdapter.client\u003c/code\u003e union in mcp tests for mypy\nchore(langchain): format \u003ccode\u003emcp/adapter.py\u003c/code\u003e\nrelease(langchain): 1.4.0a3\nfeat(langchain): group MCP tool metadata under an \u003ccode\u003emcp\u003c/code\u003e namespace\nrefactor(langchain): stop exporting \u003ccode\u003eMCPAdapterTarget\u003c/code\u003e from \u003ccode\u003elangchain.mcp\u003c/code\u003e\nrefactor(langchain): rename \u003ccode\u003econvert_mcp_tool_to_langchain_tool\u003c/code\u003e to \u003ccode\u003eas_langchain_tool\u003c/code\u003e\nrefactor(langchain): rename \u003ccode\u003eMCPAdapter.get_tools\u003c/code\u003e to \u003ccode\u003elist_tools\u003c/code\u003e\nfeat(langchain): expose \u003ccode\u003ecache_mode\u003c/code\u003e on \u003ccode\u003eMCPAdapter.get_tools\u003c/code\u003e\nchore(langchain): require \u003ccode\u003efastmcp\u003c/code\u003e 4.0.0\nfeat(langchain): accept a \u003ccode\u003eClientGroup\u003c/code\u003e as an \u003ccode\u003eMCPAdapter\u003c/code\u003e target\nfeat(langchain): mark the \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace as beta\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/langchain-ai/langchain/commit/79cab2dc7f58be720cac43db3677b4c1fd971f91\"\u003e\u003ccode\u003e79cab2d\u003c/code\u003e\u003c/a\u003e release(anthropic): 1.7.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40181\"\u003e#40181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1e6a4f0b45b60475f566f3ad49fb32ea99d22233\"\u003e\u003ccode\u003e1e6a4f0\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40171\"\u003e#40171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/8330dfe987988c1bcbbc5e8d9af9a67e5a1c2744\"\u003e\u003ccode\u003e8330dfe\u003c/code\u003e\u003c/a\u003e docs(langchain): runnable \u003ccode\u003elangchain.mcp\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39976\"\u003e#39976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/280442b54c80db2175ced4a20ab59eab86a32dc1\"\u003e\u003ccode\u003e280442b\u003c/code\u003e\u003c/a\u003e feat(langchain): \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace, \u003ccode\u003eMCPAdapter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39939\"\u003e#39939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f5ee2b65f4cf2f1a9fe688bcae6ad2af966582bd\"\u003e\u003ccode\u003ef5ee2b6\u003c/code\u003e\u003c/a\u003e chore(chroma): bump Pygments security constraint (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/234255c1c7427b5ed6dc505abad41ddfa6c9ff8f\"\u003e\u003ccode\u003e234255c\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40009\"\u003e#40009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/79e0e4adbafc1fda1ca9956e184be8b8819aa7ab\"\u003e\u003ccode\u003e79e0e4a\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40149\"\u003e#40149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e90201b7af5cd32762744c974ca9ce3f27efc9d8\"\u003e\u003ccode\u003ee90201b\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40150\"\u003e#40150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4240248e7b08ed72e85ce0744350c33beddb0ac8\"\u003e\u003ccode\u003e4240248\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40148\"\u003e#40148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/530290a9d445069d80a68cdcd4d0da768f2aa2b0\"\u003e\u003ccode\u003e530290a\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv to 0.12.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40092\"\u003e#40092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain==1.3.13...langchain==1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.9 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/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.6.3\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.2\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40407\"\u003e#40407\u003c/a\u003e)\nfeat(core): Allow model name and provider tracing metadata override based on gateway response (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40406\"\u003e#40406\u003c/a\u003e)\ntest(core): cover the deprecated \u003ccode\u003e.text()\u003c/code\u003e access path (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40243\"\u003e#40243\u003c/a\u003e)\ndocs(core): remove stale Args/Raises entries from FileCallbackHandler._write and ChatGeneration.set_text (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40211\"\u003e#40211\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.1\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40209\"\u003e#40209\u003c/a\u003e)\nfeat(openai): support async tools (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40208\"\u003e#40208\u003c/a\u003e)\nchore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40150\"\u003e#40150\u003c/a\u003e)\nchore(deps): bump tornado from 6.5.7 to 6.5.8 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40113\"\u003e#40113\u003c/a\u003e)\nfix(core): avoid mutation in google-genai standard content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40023\"\u003e#40023\u003c/a\u003e)\nfix(core): avoid mutation in bedrock converse standard content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40022\"\u003e#40022\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.0\u003c/p\u003e\n\u003cp\u003erevert: release(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39971\"\u003e#39971\u003c/a\u003e)\nrelease(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39967\"\u003e#39967\u003c/a\u003e)\nfix(core): shore up indexing in genai v1 streaming content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39964\"\u003e#39964\u003c/a\u003e)\nfix(core): make \u003ccode\u003eStructuredTool\u003c/code\u003e JSON-serializable (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39631\"\u003e#39631\u003c/a\u003e)\nchore(deps): bump minor and patch dependencies (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39869\"\u003e#39869\u003c/a\u003e)\nrelease(core): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39832\"\u003e#39832\u003c/a\u003e)\nfeat(core): propagate gateway information on error path (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39829\"\u003e#39829\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.5.6\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39760\"\u003e#39760\u003c/a\u003e)\nfix(core): resolve postponed annotations in \u003ccode\u003eStructuredTool._injected_args_keys\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39602\"\u003e#39602\u003c/a\u003e)\nfeat(core): add standard model exception types (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39538\"\u003e#39538\u003c/a\u003e)\nfix(core): allow deserializing \u003ccode\u003eRunnablePick\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39753\"\u003e#39753\u003c/a\u003e)\nfix(core): make \u003ccode\u003econvert_to_openai_function\u003c/code\u003e handle callables and non-dict mappings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39750\"\u003e#39750\u003c/a\u003e)\nfix(core): make subprocess and temporary file tests portable on Windows (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39664\"\u003e#39664\u003c/a\u003e)\nfix(core): fail fast when tool schemas can't resolve forward refs during serialization (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39570\"\u003e#39570\u003c/a\u003e)\ntest(core): avoid version-dependent runnable snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39705\"\u003e#39705\u003c/a\u003e)\nfix(core): require all nested properties for strict tool schemas (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39306\"\u003e#39306\u003c/a\u003e)\nfix(core): remove stale sync-stream \u003ccode\u003exfail\u003c/code\u003e [closes \u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39720\"\u003e#39720\u003c/a\u003e] (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39723\"\u003e#39723\u003c/a\u003e)\nperf(core): Lazily import transformers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38037\"\u003e#38037\u003c/a\u003e)\nfix(core): accept non-dict Mapping values in mustache templates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39680\"\u003e#39680\u003c/a\u003e)\ndocs(core): clarify \u003ccode\u003eRunnable\u003c/code\u003e pipe coercion [closes \u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39075\"\u003e#39075\u003c/a\u003e] (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39707\"\u003e#39707\u003c/a\u003e)\nfix(core): finalize chain-group runs on \u003ccode\u003eBaseException\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39699\"\u003e#39699\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.5.6\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.5.5\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/langchain-ai/langchain/commit/348c9dc572599947d2d7d33d6a5b8b936e92a1d4\"\u003e\u003ccode\u003e348c9dc\u003c/code\u003e\u003c/a\u003e release(core): 1.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40407\"\u003e#40407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e0e1557bd6ebae13915c59d942ef2824b51a10c6\"\u003e\u003ccode\u003ee0e1557\u003c/code\u003e\u003c/a\u003e feat(core): Allow model name and provider tracing metadata override based on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/67ee6cb63dd9ae7f3a4dfedc3095652bce15a125\"\u003e\u003ccode\u003e67ee6cb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40399\"\u003e#40399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d5d7cc56ab3932c9a10dc76b31cd5d4a778c3f2a\"\u003e\u003ccode\u003ed5d7cc5\u003c/code\u003e\u003c/a\u003e release(anthropic): 1.7.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40387\"\u003e#40387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4436bd2b67814877a3797613de28882adcdb6edf\"\u003e\u003ccode\u003e4436bd2\u003c/code\u003e\u003c/a\u003e fix(anthropic): preserve invalid tool use blocks (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40372\"\u003e#40372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/443154df9db5251d73730e1de3eb63bf352e586f\"\u003e\u003ccode\u003e443154d\u003c/code\u003e\u003c/a\u003e feat(huggingface): use torch.accelerator for device-agnostic device count det...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3539ca08d92e10b65b6f3117cfd657b16b05c865\"\u003e\u003ccode\u003e3539ca0\u003c/code\u003e\u003c/a\u003e fix(huggingface): remove retired IPEX backend (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39649\"\u003e#39649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/45d94fb0fa10bf8cab95dcb1e76c2bc39165535d\"\u003e\u003ccode\u003e45d94fb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40358\"\u003e#40358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/60357692c76651a7cd6153496a24658fa355bdcc\"\u003e\u003ccode\u003e6035769\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a7b0f0ae50acebb527a25e153ff16621d37ba650\"\u003e\u003ccode\u003ea7b0f0a\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40318\"\u003e#40318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.9...langchain-core==1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-openai` from 1.3.5 to 1.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-openai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-openai==1.6.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.6.1\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\nfix(openai): add GPT-6 Astra reasoning efforts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40330\"\u003e#40330\u003c/a\u003e)\nchore(deps): bump httpx2 from 2.10.0 to 2.12.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40309\"\u003e#40309\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.6.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.6.0\u003c/p\u003e\n\u003cp\u003efix(openai): bump \u003ccode\u003emax_completion_tokens\u003c/code\u003e in cache breakpoint integration test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40284\"\u003e#40284\u003c/a\u003e)\nrelease(openai): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40268\"\u003e#40268\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40217\"\u003e#40217\u003c/a\u003e)\nfix(openai): support Azure AD auth with OpenAI 3.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40190\"\u003e#40190\u003c/a\u003e)\nfeat(openai): support async tools (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40208\"\u003e#40208\u003c/a\u003e)\nfeat(openai): support \u003ccode\u003econfiguration_update\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40201\"\u003e#40201\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40171\"\u003e#40171\u003c/a\u003e)\nfix(openai): route \u003ccode\u003egpt-5.6-sol\u003c/code\u003e to responses API (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40133\"\u003e#40133\u003c/a\u003e)\nchore(openai): fix tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39972\"\u003e#39972\u003c/a\u003e)\nfix(openai): correct \u003ccode\u003ereasoning_effort_levels\u003c/code\u003e for gpt-5 and gpt-5.1 profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39936\"\u003e#39936\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39954\"\u003e#39954\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.6.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.5.2\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.6.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39762\"\u003e#39762\u003c/a\u003e)\nfeat(core): add standard model exception types (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39538\"\u003e#39538\u003c/a\u003e)\nfix(openai): raise clear error on unexpected response type in \u003ccode\u003e_create_chat_result\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39731\"\u003e#39731\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.5.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.5.1\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.5.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39719\"\u003e#39719\u003c/a\u003e)\nfix(openai): preserve reasoning item boundaries (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39278\"\u003e#39278\u003c/a\u003e)\nrelease(openai): 1.5.2a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39709\"\u003e#39709\u003c/a\u003e)\nfeat(openai): extract gateway metadata from response headers when available (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39706\"\u003e#39706\u003c/a\u003e)\nchore(openai): update snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39657\"\u003e#39657\u003c/a\u003e)\nfix(openai): support o-series models in \u003ccode\u003eget_num_tokens_from_messages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38710\"\u003e#38710\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.5.2a1\u003c/h2\u003e\n\u003cp\u003eInitial release\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.5.2a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39709\"\u003e#39709\u003c/a\u003e)\nfeat(openai): extract gateway metadata from response headers when available (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39706\"\u003e#39706\u003c/a\u003e)\nchore(openai): update snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39657\"\u003e#39657\u003c/a\u003e)\nfix(openai): support o-series models in \u003ccode\u003eget_num_tokens_from_messages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38710\"\u003e#38710\u003c/a\u003e)\nrelease(openai): 1.5.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39653\"\u003e#39653\u003c/a\u003e)\nfix(openai): preserve streamed encrypted reasoning (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39635\"\u003e#39635\u003c/a\u003e)\nchore(infra): support langsmith gateway in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39651\"\u003e#39651\u003c/a\u003e)\nrelease(openai): 1.5.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39629\"\u003e#39629\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/langchain-ai/langchain/commit/60357692c76651a7cd6153496a24658fa355bdcc\"\u003e\u003ccode\u003e6035769\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a7b0f0ae50acebb527a25e153ff16621d37ba650\"\u003e\u003ccode\u003ea7b0f0a\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40318\"\u003e#40318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1611938f49dda48aa069d1fdce429430257488b7\"\u003e\u003ccode\u003e1611938\u003c/code\u003e\u003c/a\u003e fix(openai): add GPT-6 Astra reasoning efforts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40330\"\u003e#40330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f092c9a78b3c532ef4c01935c0d4514209ff9f96\"\u003e\u003ccode\u003ef092c9a\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40317\"\u003e#40317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/22f3421aeedec55962f712a34d86d9683bf6cf59\"\u003e\u003ccode\u003e22f3421\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40218\"\u003e#40218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1c40140b3daf80c5baa7427d707ef2beb6c404b2\"\u003e\u003ccode\u003e1c40140\u003c/code\u003e\u003c/a\u003e chore(deps): bump httpx2 from 2.10.0 to 2.12.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40309\"\u003e#40309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/db613a96050bc6e594fdcd618af7532264dcceb8\"\u003e\u003ccode\u003edb613a9\u003c/code\u003e\u003c/a\u003e fix(openai): bump \u003ccode\u003emax_completion_tokens\u003c/code\u003e in cache breakpoint integration tes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9f2eb7f46719742875ebea9e31d53e168e8b81a2\"\u003e\u003ccode\u003e9f2eb7f\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40268\"\u003e#40268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/765eb32901fa524e1428f94a9ee91b371a63ab62\"\u003e\u003ccode\u003e765eb32\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40277\"\u003e#40277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e670c7a03ba36fd1516f0185f7ec1186c89aa471\"\u003e\u003ccode\u003ee670c7a\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40258\"\u003e#40258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-openai==1.3.5...langchain-openai==1.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph` from 1.2.9 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph==1.2.11\u003c/h2\u003e\n\u003cp\u003eChanges since 1.2.10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8595\"\u003e#8595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8523\"\u003e#8523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group across 1 directory with 7 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8533\"\u003e#8533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group across 1 directory with 5 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8532\"\u003e#8532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-postgres): 3.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8565\"\u003e#8565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(checkpoint): collect writes at plain-value seed in delta channel history (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump types-requests from 2.33.0.20260518 to 2.33.0.20260712 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 48.0.1 to 50.0.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8528\"\u003e#8528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-sqlite): 3.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8481\"\u003e#8481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-postgres): 3.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8480\"\u003e#8480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.2.10\u003c/h2\u003e\n\u003cp\u003eChanges since 1.2.9\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8462\"\u003e#8462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump jupyterlab from 4.5.9 to 4.5.10 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8440\"\u003e#8440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump setuptools from 80.9.0 to 83.0.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8435\"\u003e#8435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): type v3 stream_events return and native projections (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8389\"\u003e#8389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erevert(langgraph): delete TracePolicy (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8403\"\u003e#8403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): drop tags from TracePolicy (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8402\"\u003e#8402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8362\"\u003e#8362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump mistune from 3.2.1 to 3.3.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8317\"\u003e#8317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump soupsieve from 2.8.1 to 2.8.4 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8318\"\u003e#8318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(cli): allow langgraph-api versions up to 1.0.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8319\"\u003e#8319\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/langchain-ai/langgraph/commit/644815f9e5bc52ad8f7a5227a456227e9c3e639b\"\u003e\u003ccode\u003e644815f\u003c/code\u003e\u003c/a\u003e release(langgraph): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8595\"\u003e#8595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/7d6b5790ba84ce38c26f27a533d8419a31103c36\"\u003e\u003ccode\u003e7d6b579\u003c/code\u003e\u003c/a\u003e feat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8523\"\u003e#8523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d56666f7fbf0d380ad84cdf0cbe5aa48ab0cc086\"\u003e\u003ccode\u003ed56666f\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group across 1 directory with 7 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/6a2822d3c77dad49a96718de73095f18717728be\"\u003e\u003ccode\u003e6a2822d\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group across 1 directory with 5 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/fde3068970679184b68d3d068a92c83c966a4888\"\u003e\u003ccode\u003efde3068\u003c/code\u003e\u003c/a\u003e release(checkpoint-postgres): 3.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8565\"\u003e#8565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/f55e77274dad40897ef7b2d52cc7c0b85b792247\"\u003e\u003ccode\u003ef55e772\u003c/code\u003e\u003c/a\u003e release(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/a90ab4435853b8a5b6f82b20220b4c76af0e46d1\"\u003e\u003ccode\u003ea90ab44\u003c/code\u003e\u003c/a\u003e fix(checkpoint): collect writes at plain-value seed in delta channel history ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/ea5f9cc9fb8c4b123769daab4753af34de29b1e9\"\u003e\u003ccode\u003eea5f9cc\u003c/code\u003e\u003c/a\u003e chore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/36a505ac65e956da09e93cc753609635a511047e\"\u003e\u003ccode\u003e36a505a\u003c/code\u003e\u003c/a\u003e test(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d569e18f4bd78b7652cb88c84b8dd098057e4f7d\"\u003e\u003ccode\u003ed569e18\u003c/code\u003e\u003c/a\u003e fix(checkpoint-postgres): find plain-value seeds when walking delta history (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langgraph/compare/1.2.9...1.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph-checkpoint` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph-checkpoint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph-checkpoint==4.2.0\u003c/h2\u003e\n\u003cp\u003eChanges since checkpoint==4.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(checkpoint): collect writes at plain-value seed in delta channel history (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 4 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8490\"\u003e#8490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(checkpoint,checkpoint-postgres): add opt-in omit_expired to skip expired rows on read (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8354\"\u003e#8354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 5 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8248\"\u003e#8248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/checkpoint (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8173\"\u003e#8173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: standardize package \u003ccode\u003eREADME.md\u003c/code\u003e structure (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8064\"\u003e#8064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: migrate Python type checking to ty (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8002\"\u003e#8002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the major group in /libs/checkpoint with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/7967\"\u003e#7967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/7960\"\u003e#7960\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/langchain-ai/langgraph/commit/f55e77274dad40897ef7b2d52cc7c0b85b792247\"\u003e\u003ccode\u003ef55e772\u003c/code\u003e\u003c/a\u003e release(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/a90ab4435853b8a5b6f82b20220b4c76af0e46d1\"\u003e\u003ccode\u003ea90ab44\u003c/code\u003e\u003c/a\u003e fix(checkpoint): collect writes at plain-value seed in delta channel history ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/ea5f9cc9fb8c4b123769daab4753af34de29b1e9\"\u003e\u003ccode\u003eea5f9cc\u003c/code\u003e\u003c/a\u003e chore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/36a505ac65e956da09e93cc753609635a511047e\"\u003e\u003ccode\u003e36a505a\u003c/code\u003e\u003c/a\u003e test(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d569e18f4bd78b7652cb88c84b8dd098057e4f7d\"\u003e\u003ccode\u003ed569e18\u003c/code\u003e\u003c/a\u003e fix(checkpoint-postgres): find plain-value seeds when walking delta history (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/f22af6248c93df08b553e9a264f6367797e0fddb\"\u003e\u003ccode\u003ef22af62\u003c/code\u003e\u003c/a\u003e chore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/658541c4960f329864a2523fc7d52427e8190bed\"\u003e\u003ccode\u003e658541c\u003c/code\u003e\u003c/a\u003e chore(checkpoint-postgres,checkpoint-sqlite): enable PLC0415 lint rule (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8540\"\u003e#8540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/fb3d5f0399222504e015fe959e0e79fdc6e00a65\"\u003e\u003ccode\u003efb3d5f0\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/cli/js-examples with 8 u...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/01521c1b1cc4c035f64b9be40f2913285128f526\"\u003e\u003ccode\u003e01521c1\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/cli/js-monorepo-example ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/cd62febcfae628d0930d1f7d3cb3b5919d4b800f\"\u003e\u003ccode\u003ecd62feb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/checkpoint with 4 update...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langgraph/compare/checkpoint==4.1.1...checkpoint==4.2.0\"\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.2.2 to 1.2.3\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.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\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/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.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\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/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdfium2` from 5.11.0 to 5.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/releases\"\u003epypdfium2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease 5.13.0\u003c/h2\u003e\n\u003ch3\u003eSummary\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExperimental \u003ccode\u003epyemscripten_2026_0_wasm32\u003c/code\u003e (Pyodide) build support added. \u003cem\u003eHowever, the resulting builds are flaky at runtime and subject to various types of random crashes. Freezes on shutdown have also been observed.\u003c/em\u003e\nWhile these issues persist, PyEmscripten wheels will not be uploaded to PyPI, but they are included in the release process and can be downloaded from GitHub on an experimental basis. If you can help track down and fix these issues, please reach out.\nNote: Our PyEmscripten wheels are bigger than usual, as they are built with debug symbols (a non-debug build is not considered useful at this stage).\u003c/li\u003e\n\u003cli\u003eFixed compatibility with Python 3.6 and 3.7.\n\u003cul\u003e\n\u003cli\u003eRuntime support was inadvertently broken due to a faulty cached property backport which held only one cache per class, not per instance as should have been.\nThe accidental loss of caches broke key assumptions of our autoclose logic, which relies on \u003ccode\u003ecached_property\u003c/code\u003e since 5.8.0. (Earlier versions that did not make extensive use of cached properties might work but have not been explicitly tested.)\u003c/li\u003e\n\u003cli\u003eThis release replaces both \u003ccode\u003efunctools.cached_property\u003c/code\u003e and the faulty \u003ccode\u003efunctools.lru_cache()\u003c/code\u003e based backport with our own, backward compatible \u003ccode\u003ecached_property\u003c/code\u003e implementation along with thorough documentation.\u003c/li\u003e\n\u003cli\u003eAlso, fixed setup (i.e. source installation) with Python 3.6 and its max available setup dependency versions (that is, \u003ccode\u003esetuptools\u003c/code\u003e 59). This had probably been broken for a long time. (A few non-breaking issues remain, e.g. for some reason we end up with a \u003ccode\u003epurelib\u003c/code\u003e directory, but it should be \u003ccode\u003eplatlib\u003c/code\u003e.)\u003c/li\u003e\n\u003cli\u003eBear in mind that ctypesgen continues to require Python \u003ccode\u003e\u0026gt;=3.8\u003c/code\u003e at this time (3.6 compat not being a priority in that case), but you can install with \u003ccode\u003e--no-build-isolation\u003c/code\u003e and let the reference bindings be used, or try adding ctypesgen's \u003ccode\u003esrc/\u003c/code\u003e to \u003ccode\u003ePYTHONPATH\u003c/code\u003e to bypass setup, and see how it goes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNote: We do not plan to (and practically cannot) keep up compatibility with outdated Python versions indefinitely.\u003c/strong\u003e In particular, setup compatibility may be dropped sooner or later in favor of contemporary Python packaging concepts, like migrating as much as possible to \u003ccode\u003epyproject.toml\u003c/code\u003e. That said, we are happy to restore compatibility at this point, and fix any \u003cem\u003eunintentional\u003c/em\u003e breakage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eMANIFEST.in\u003c/code\u003e missing Windows spoof headers, which resulted in subtly incorrect bindings when installing from an sdist on Windows, as seen in test failures. (Release wheels have been unaffected and passed the test suite, so this issue went unnoticed for a while.)\u003c/li\u003e\n\u003cli\u003eBumped \u003ccode\u003egn-dist\u003c/code\u003e from \u003ccode\u003e2407.1\u003c/code\u003e to \u003ccode\u003e2407.3\u003c/code\u003e. Made its setup python 3.6 compatible likewise (wheels should have worked before now). Changed versioning and release process so that CI no longer needs to push to the repository (may eventually become a blueprint for pypdfium2 itself). More documentation added, including \u003ccode\u003emanylinux2014\u003c/code\u003e POC.\u003c/li\u003e\n\u003cli\u003eInternal improvements (non-exhaustive):\n\u003cul\u003e\n\u003cli\u003eProperly clean up \u003ccode\u003e*.egg-info/\u003c/code\u003e and \u003ccode\u003ebuild/\u003c/code\u003e before packaging, to avoid mad file inclusion bugs (ran into this while working on setup include rules).\u003c/li\u003e\n\u003cli\u003eMigrated from requirements files to PEP 735 dependency groups (\u003ccode\u003epyproject.toml\u003c/code\u003e).\nRecent enough \u003ccode\u003epip\u003c/code\u003e should be available to Python \u0026gt;= 3.9. For compatibility with older versions, feel free to use \u003ccode\u003e./utils/misc/install_dep_group.py\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eApplied dependency cooldowns to internal callers of \u003ccode\u003epip install\u003c/code\u003e. Always use virtual environments in CI. Use lockfiles in sensitive areas (e.g. publish jobs).\u003c/li\u003e\n\u003cli\u003eRearranged \u0026amp; improved utilities. Cleaner distinction between \u003ccode\u003esetupsrc/\u003c/code\u003e and \u003ccode\u003eutils/\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWork around persistent i686 container network issues by downgrading host runner to \u003ccode\u003eubuntu-24.04\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eLet \u003ccode\u003esetupsrc/\u003c/code\u003e share code from \u003ccode\u003esrc/\u003c/code\u003e through a \u003ccode\u003epypdfium2_cfg._shared\u003c/code\u003e submodule that can be added to \u003ccode\u003esys.path\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild info\u003c/h3\u003e\n\u003cp\u003eThis release was made with the following build strategies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePBIN: \u003ccode\u003e[macosx_arm64, macosx_x86_64, win_amd64, win_arm64, win32, manylinux_x86_64, manylinux_i686, manylinux_aarch64, manylinux_armv7l, manylinux_ppc64le, manylinux_mips64le, android_arm64_v8a, android_armeabi_v7a]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSBLD: \u003ccode\u003e[manylinux_mipsle]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCIBW: \u003ccode\u003e[manylinux_riscv64, manylinux_loongarch64, manylinux_s390x, musllinux_x86_64, musllinux_aarch64, musllinux_armv7l, musllinux_i686, musllinux_ppc64le, musllinux_s390x, musllinux_riscv64, musllinux_loongarch64, pyodide_wasm32]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\nThe following builds are affected by known, major issues (e.g. endianness bugs, crashes, freezes) and are \u003cstrong\u003eNOT\u003c/strong\u003e considered ready for production use:\n\u003ccode\u003e[manylinux_s390x, musllinux_s390x, pyodide_wasm32]\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eCommit logs\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eCommits between \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/tree/5.12.1\"\u003e\u003ccode\u003e5.12.1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/tree/5.13.0\"\u003e\u003ccode\u003e5.13.0\u003c/code\u003e\u003c/a\u003e (latest commit first):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/a4659102e4c258ee18c661232c0f9763f6c85ad0\"\u003e\u003ccode\u003ea4659102\u003c/code\u003e\u003c/a\u003e [autorelease main] update 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/9094de358328ae44236c5cb401a8155311e450a0\"\u003e\u003ccode\u003e9094de35\u003c/code\u003e\u003c/a\u003e continue on changelog/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b89e367a5dec13b99ec20f0beed137146a75bbcf\"\u003e\u003ccode\u003eb89e367a\u003c/code\u003e\u003c/a\u003e git_net_additions.py: minor tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/57157e789f2573f6d4b61e58e8c7a778674afdd1\"\u003e\u003ccode\u003e57157e78\u003c/code\u003e\u003c/a\u003e readme: don't overdo admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/033d5ce066aba79233d4f406678bbac057ad6011\"\u003e\u003ccode\u003e033d5ce0\u003c/code\u003e\u003c/a\u003e changelog: less waffle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/5afbd6193eff87df05153148116a82d9f7cd7fa3\"\u003e\u003ccode\u003e5afbd619\u003c/code\u003e\u003c/a\u003e install_buildtools: use compat function for dependency group\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/pypdfium2-team/pypdfium2/commit/a4659102e4c258ee18c661232c0f9763f6c85ad0\"\u003e\u003ccode\u003ea465910\u003c/code\u003e\u003c/a\u003e [autorelease main] update 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/9094de358328ae44236c5cb401a8155311e450a0\"\u003e\u003ccode\u003e9094de3\u003c/code\u003e\u003c/a\u003e continue on changelog/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b89e367a5dec13b99ec20f0beed137146a75bbcf\"\u003e\u003ccode\u003eb89e367\u003c/code\u003e\u003c/a\u003e git_net_additions.py: minor tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/57157e789f2573f6d4b61e58e8c7a778674afdd1\"\u003e\u003ccode\u003e57157e7\u003c/code\u003e\u003c/a\u003e readme: don't overdo admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/033d5ce066aba79233d4f406678bbac057ad6011\"\u003e\u003ccode\u003e033d5ce\u003c/code\u003e\u003c/a\u003e changelog: less waffle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/5afbd6193eff87df05153148116a82d9f7cd7fa3\"\u003e\u003ccode\u003e5afbd61\u003c/code\u003e\u003c/a\u003e install_buildtools: use compat function for dependency group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/3282e36375fd6e139f885ff634747ab0fe643e66\"\u003e\u003ccode\u003e3282e36\u003c/code\u003e\u003c/a\u003e Add zizmor to check step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/07b84aaaa9c4c44429e0316c15c179b64c004d0a\"\u003e\u003ccode\u003e07b84aa\u003c/code\u003e\u003c/a\u003e Progress changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/6ec38d2aa64d59f02892ddf07f601bbdb5bbf53e\"\u003e\u003ccode\u003e6ec38d2\u003c/code\u003e\u003c/a\u003e git_net_additions: further improve fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b5cdd7c7fcd2c01cd7744b6824f977bbbcb831c6\"\u003e\u003ccode\u003eb5cdd7c\u003c/code\u003e\u003c/a\u003e git_net_additions: fancier fallback for binary files\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/compare/5.11.0...5.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.5.4 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.5.5 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.5\"\u003eDuckDB's changelog\u003c/a\u003e for all changes in DuckDB.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed in DuckDB-Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix numpy deprecations by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/505\"\u003educkdb/duckdb-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix alias of \u003ccode\u003eDuckDBPyRelation.query\u003c/code\u003e (closes \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/468\"\u003e#468\u003c/a\u003e) by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/524\"\u003educkdb/duckdb-python#524\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/duckdb/duckdb-python/commit/b236c8194ed14c7a7c685e0534dde501cc855b3a\"\u003e\u003ccode\u003eb236c81\u003c/code\u003e\u003c/a\u003e Pin submodule to release hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e6a21c5b5d65d741fafd5a7389c93b8b86a7f249\"\u003e\u003ccode\u003ee6a21c5\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/f637bf42683030cbb108268581b866f13cb75031\"\u003e\u003ccode\u003ef637bf4\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/4c5c73c63381bd0587fd42b41093c8f0abe9f17c\"\u003e\u003ccode\u003e4c5c73c\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6fae28061912de88c3c0f6e6ad6b2f3fc5ee5235\"\u003e\u003ccode\u003e6fae280\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/d8d5f0a36003c9090ea9480cdefa8f4b4122fece\"\u003e\u003ccode\u003ed8d5f0a\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/5d85f06025e83e3d2c69813acf4b2dc02bebc415\"\u003e\u003ccode\u003e5d85f06\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/c3cbf8d9ca87cea3dfbb89bfa2102ff4ec530f00\"\u003e\u003ccode\u003ec3cbf8d\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/93418b65c6ca821d71d9a091fb5218ad55d8a4eb\"\u003e\u003ccode\u003e93418b6\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/24f1915b590e1e663a14c0bff9e49bf28ebece9b\"\u003e\u003ccode\u003e24f1915\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.5.4...v1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.9.0 to 1.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eScikit-learn 1.9.1\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.9.1 release.\u003c/p\u003e\n\u003cp\u003eThis release contains a few bug fixes and is the first version supporting Python 3.15.\u003c/p\u003e\n\u003cp\u003eYou can see the changelog here: \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.9.html#version-1-9-1\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.9.html#version-1-9-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThanks to everyone who contributed to this release !\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/866c0f51e7560ef0303cbcc5f159df5382ea9e3f\"\u003e\u003ccode\u003e866c0f5\u003c/code\u003e\u003c/a\u003e generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/12f135fbffe3b3e7e294e4ef16f0b59f68e6a6b9\"\u003e\u003ccode\u003e12f135f\u003c/code\u003e\u003c/a\u003e update upper bounds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/43ff2f20bc5bfbe92b9cd3ec9d86214da8ee2c6e\"\u003e\u003ccode\u003e43ff2f2\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/b8515241202663142b65dbe92294e96a6dc5def2\"\u003e\u003ccode\u003eb851524\u003c/code\u003e\u003c/a\u003e DOC Mark dev index as orphan (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34916\"\u003e#34916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/01d56d48da18e7b365c4d2ebcd5d1fddaa24dd12\"\u003e\u003ccode\u003e01d56d4\u003c/code\u003e\u003c/a\u003e DOC Fix wikipedia principal eigenvector example references (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34915\"\u003e#34915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/b86a1e227c2c424b17f8872d4094bbbc061e32c9\"\u003e\u003ccode\u003eb86a1e2\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/d282698440cec541f2427794b8c205fb4b1420be\"\u003e\u003ccode\u003ed282698\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34897\"\u003e#34897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eb34279083fe9297d141efddceaf38c596a49766\"\u003e\u003ccode\u003eeb34279\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/7581303c447a0daa07fa74ba8104e327c11f1dc5\"\u003e\u003ccode\u003e7581303\u003c/code\u003e\u003c/a\u003e FIX: Fix \u003ccode\u003eQuantileTransformer(ignore_implicit_zeros=True)\u003c/code\u003e sub-sampling behav...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/ac47f4de75eacad880b77db09aa1f677f6038274\"\u003e\u003ccode\u003eac47f4d\u003c/code\u003e\u003c/a\u003e FIX: avoid EfficiencyWarning in OPTICS with metric='precomputed' (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34692\"\u003e#34692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.9.0...1.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joblib` from 1.5.3 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joblib/joblib/blob/main/CHANGES.rst\"\u003ejoblib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.6.0 - 2026/08/31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix caching of functions whose source cannot be retrieved, such as functions\ndefined in a notebook cell. Their identity fell back to\n\u003ccode\u003estr(hash(func.__code__))\u003c/code\u003e, which is salted by \u003ccode\u003ePYTHONHASHSEED\u003c/code\u003e and so\ndiffered between processes. A worker reading the \u003ccode\u003efunc_code.py\u003c/code\u003e written by\nanother one concluded that the function had changed and wiped the whole\ncache directory for it, discarding results computed by its peers.\n\u003ccode\u003efunc_code.py\u003c/code\u003e is also no longer rewritten in place, so a reader can no\nlonger catch it half-written and draw the same conclusion.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1694\"\u003ejoblib/joblib#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop python 3.9 support. The oldest supported Python version\nis now Python 3.10.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1773\"\u003ejoblib/joblib#1773\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eeval_expr\u003c/code\u003e (used to evaluate the \u003ccode\u003epre_dispatch\u003c/code\u003e argument of\n\u003ccode\u003eParallel\u003c/code\u003e) to raise a \u003ccode\u003eValueError\u003c/code\u003e as documented instead of leaking a\n\u003ccode\u003eZeroDivisionError\u003c/code\u003e for expressions that divide or take a modulo by zero.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1810\"\u003ejoblib/joblib#1810\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMemorizedResult\u003c/code\u003e now forwards \u003ccode\u003emmap_mode\u003c/code\u003e to its store backend, so a\ncached array reconstructed from a location is memory-mapped as requested\ninstead of being loaded fully into memory.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1799\"\u003ejoblib/joblib#1799\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUnvendor cloudpickle to more quickly benefit from maintenance releases\nof cloudpickle\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1775\"\u003ejoblib/joblib#1775\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eMemory.cache\u003c/code\u003e for functions with a keyword-only argument that has a\ndefault declared before a keyword-only argument without a default.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1731\"\u003ejoblib/joblib#1731\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix behavior of \u003ccode\u003efilter_args\u003c/code\u003e on some precise cases.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1800\"\u003ejoblib/joblib#1800\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a concurrency error that could happen with unordered generator.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1789\"\u003ejoblib/joblib#1789\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003edump()\u003c/code\u003e now accepts any input \u003ccode\u003eos.PathLike\u003c/code\u003e object to be consistent with\n\u003ccode\u003eload\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1812\"\u003ejoblib/joblib#1812\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe documentation now uses pydata sphinx theme. Furthermore, optional dependencies\n\u003ccode\u003etest\u003c/code\u003e and \u003ccode\u003edocs\u003c/code\u003e have been added to \u003ccode\u003epyproject.toml\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1774\"\u003ejoblib/joblib#1774\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVendor \u003ccode\u003eloky 3.6.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/cd9a6b05fc4f2b1c8202eb62c4e863484f8cc099\"\u003e\u003ccode\u003ecd9a6b0\u003c/code\u003e\u003c/a\u003e Release 1.6.0 (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1844\"\u003e#1844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/d873f972949d78166af6c945667c53f04d41fed6\"\u003e\u003ccode\u003ed873f97\u003c/code\u003e\u003c/a\u003e MNT vendor loky 3.6.0 (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1843\"\u003e#1843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/4ff61afd0849f18fddf5fbd137c1f02bfaed5223\"\u003e\u003ccode\u003e4ff61af\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/804f4725e1a27b1425c8aabcf7312ceb11c3a07d\"\u003e\u003ccode\u003e804f472\u003c/code\u003e\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/Vatsa1374/Vibe-trading-/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vatsa1374%2FVibe-trading-/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"},{"uuid":"5469180471","node_id":"PR_kwDOS9Lfxc8AAAABDsoOsQ","number":79,"state":"open","title":"chore(deps): bump the uv-dependencies group across 1 directory with 51 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-16T01:34:46.000Z","updated_at":"2026-09-16T01:34:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":51,"packages":[{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"apprise","old_version":"1.12.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"49.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"dateparser","old_version":"1.4.1","new_version":"1.4.3","repository_url":"https://github.com/scrapinghub/dateparser"},{"name":"pytz","old_version":"2026.2","new_version":"2026.3.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.22.1","new_version":"4.25.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"anyio","old_version":"4.14.1","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"cachetools","old_version":"7.1.5","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.139.2","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.6.0","new_version":"2026.7.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"griffe","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.9","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.2","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-slugify","old_version":"8.0.4","new_version":"9.0.0","repository_url":"https://github.com/un33k/python-slugify"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"whenever","old_version":"0.10.3","new_version":"0.10.5","repository_url":"https://github.com/ariebovenberg/whenever"},{"name":"semver","old_version":"3.0.4","new_version":"3.1.0","repository_url":"https://github.com/python-semver/python-semver"},{"name":"pydocket","old_version":"0.23.1","new_version":"0.25.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"google-cloud-secret-manager","old_version":"2.26.0","new_version":"2.30.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.47.0","new_version":"2.58.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"uv","old_version":"0.11.31","new_version":"0.12.13","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-snowflake","old_version":"0.28.8","new_version":"0.28.9","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-email","old_version":"0.4.2","new_version":"0.4.3","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-slack","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.2.2","new_version":"5.2.3","repository_url":"https://github.com/getmoto/moto"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.411","new_version":"1.1.414","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"redis","old_version":"8.0.1","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"83.0.0","new_version":"84.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"vale","old_version":"3.13.0.0","new_version":"3.21.0.0","repository_url":"https://github.com/daniperez/vale-python-package"},{"name":"virtualenv","old_version":"21.7.0","new_version":"21.7.9","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.22","new_version":"0.16.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"types-pyyaml","old_version":"6.0.12.20260518","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-dateparser","old_version":"1.4.1.20260617","new_version":"1.4.3.20260907","repository_url":"https://github.com/python/typeshed"},{"name":"pyinstrument","old_version":"5.1.2","new_version":"5.1.3","repository_url":"https://github.com/joerick/pyinstrument"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [apprise](https://github.com/caronc/apprise) | `1.12.0` | `1.13.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `49.0.0` | `50.0.1` |\n| [dateparser](https://github.com/scrapinghub/dateparser) | `1.4.1` | `1.4.3` |\n| [pytz](https://github.com/stub42/pytz) | `2026.2` | `2026.3.post1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.22.1` | `4.25.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.1` | `4.15.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.5` | `7.1.8` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.2` | `0.141.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.6.0` | `2026.7.0` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.1.0` | `2.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.44.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.9` | `3.12.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.2` | `26.3` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [python-slugify](https://github.com/un33k/python-slugify) | `8.0.4` | `9.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.52.4` |\n| [whenever](https://github.com/ariebovenberg/whenever) | `0.10.3` | `0.10.5` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.4` | `3.1.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.23.1` | `0.25.2` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.26.0` | `2.30.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.47.0` | `2.58.0` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.31` | `0.12.13` |\n| [prefect-snowflake](https://github.com/PrefectHQ/prefect) | `0.28.8` | `0.28.9` |\n| [prefect-email](https://github.com/PrefectHQ/prefect) | `0.4.2` | `0.4.3` |\n| [prefect-slack](https://github.com/PrefectHQ/prefect) | `0.3.1` | `0.4.0` |\n| [moto](https://github.com/getmoto/moto) | `5.2.2` | `5.2.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.411` | `1.1.414` |\n| [redis](https://github.com/redis/redis-py) | `8.0.1` | `8.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `83.0.0` | `84.0.0` |\n| [vale](https://github.com/daniperez/vale-python-package) | `3.13.0.0` | `3.21.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.7.0` | `21.7.9` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.22` | `0.16.7` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260518` | `6.0.12.20260906` |\n| [types-dateparser](https://github.com/python/typeshed) | `1.4.1.20260617` | `1.4.3.20260907` |\n| [pyinstrument](https://github.com/joerick/pyinstrument) | `5.1.2` | `5.1.3` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n\n\nUpdates `alembic` from 1.18.5 to 1.20.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.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\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 `apprise` from 1.12.0 to 1.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eJust a small update to fix a small stability issue with Attachments under some circumstances and the few PR's made by others in one more small bundle.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e (this time i mean it :wink: ) . Future releases will be under Apprise v2.x. Again, I strongly want to urge Developers: \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it WILL introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Signalgrid notification service plugin by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Lauther notification support by \u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes Gento Linux issue with memory based attachment handling in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1709\"\u003ecaronc/apprise#1709\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e:point_up: This is the core reason for this minor update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAllow periods in Pingram API keys (JWT format) by \u003ca href=\"https://github.com/lipusal\"\u003e\u003ccode\u003e@​lipusal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1714\"\u003ecaronc/apprise#1714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes intermittent test failures for matrix in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1717\"\u003ecaronc/apprise#1717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cp\u003en/a\u003c/p\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Py 3.13+, please by \u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(matrix): typofix in label by \u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo recomended -\u0026gt; recommended by \u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.13.1 from PyPI\r\npip install apprise==1.13.1\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ehttps://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis update clears out our backlog of resolved bugs and introduces a few new services. While it’s a standard maintenance release, we want to give a massive shoutout to our community. The level of support we've received for this update is truly incredible; there were more commits/PRs from you than there were from me and that has never happend before :slightly_smiling_face: . Your contributions are deeply appreciated! Seriously!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e. Future releases will be under Apprise v2.x. This means: Developers, \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it will introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Pinglet Support by \u003ca href=\"https://github.com/TheGlenn88\"\u003e\u003ccode\u003e@​TheGlenn88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1680\"\u003ecaronc/apprise#1680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Trigv notification support by \u003ca href=\"https://github.com/hchouhan\"\u003e\u003ccode\u003e@​hchouhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1671\"\u003ecaronc/apprise#1671\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/caronc/apprise/commit/cf4da87eab713370a62d7a4f9ca64dcd3bffdf61\"\u003e\u003ccode\u003ecf4da87\u003c/code\u003e\u003c/a\u003e bumped version to v1.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0386b1cc093b3c55cfcebf4bdce17fc4309e0bd7\"\u003e\u003ccode\u003e0386b1c\u003c/code\u003e\u003c/a\u003e Add Lauther notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1715\"\u003e#1715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/3299eb37aa60ed729f935f039b79a9f9786e7424\"\u003e\u003ccode\u003e3299eb3\u003c/code\u003e\u003c/a\u003e Add Signalgrid notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e05331ba9b5d2ace834b23e49728065ffebcb377\"\u003e\u003ccode\u003ee05331b\u003c/code\u003e\u003c/a\u003e relaxed some noisy logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8f73f6a0cdb83e6187624715a12e8f36dd8a1bbc\"\u003e\u003ccode\u003e8f73f6a\u003c/code\u003e\u003c/a\u003e Fixes intermittent test failures for matrix on py39 (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1717\"\u003e#1717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0af1bb2097dad2557f55a523d09269341fa3fdfb\"\u003e\u003ccode\u003e0af1bb2\u003c/code\u003e\u003c/a\u003e docs: fix typo recomended -\u0026gt; recommended (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1716\"\u003e#1716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8df288a1824711bc6b1bdb59c1b5b356e4da3fd5\"\u003e\u003ccode\u003e8df288a\u003c/code\u003e\u003c/a\u003e Allow periods in Pingram API keys (JWT format) (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1714\"\u003e#1714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/aa7221b7cabe757e000a1e6e019fc8f91ec517a0\"\u003e\u003ccode\u003eaa7221b\u003c/code\u003e\u003c/a\u003e Allow Py 3.13+ (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1711\"\u003e#1711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e93c9360c5ae2ed729a282bc454f6ceeb4abd9e1\"\u003e\u003ccode\u003ee93c936\u003c/code\u003e\u003c/a\u003e Fixes Gento Linux issue with memory based attachment handling (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1709\"\u003e#1709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4e6f4b117fa356f7ba0a076080c4927fcf78bc47\"\u003e\u003ccode\u003e4e6f4b1\u003c/code\u003e\u003c/a\u003e typofix in matrix:// label (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1707\"\u003e#1707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.12.0...v1.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 49.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003c/p\u003e\n\u003cp\u003e50.0.0 - 2026-07-31\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e:\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der\u003c/code\u003e\nand its PEM and S/MIME variants no longer expose distinguishable errors or\ntiming when unwrapping a \u003ccode\u003eRecipientInfo\u003c/code\u003e's \u003ccode\u003eencryptedKey\u003c/code\u003e, which could\nact as a Bleichenbacher oracle for callers that decrypt untrusted messages.\nA random key is now substituted on failure, as described in :rfc:\u003ccode\u003e3218\u003c/code\u003e.\nCredit to \u003cstrong\u003e\u003ca href=\"https://github.com/X1AOxiang\"\u003e\u003ccode\u003e@​X1AOxiang\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-69247\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated Diffie-Hellman key exchange over finite fields (FFDH).\nEverything FFDH is deprecated, including the types in\n\u003ccode\u003ecryptography.hazmat.primitives.asymmetric.dh\u003c/code\u003e and loading FFDH keys or\nparameters with the key loading APIs. Users should migrate to a more\nmodern key exchange algorithm.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003exof()\u003c/code\u003e class methods to\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.SHAKE128\u003c/code\u003e and\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.SHAKE256\u003c/code\u003e for constructing\nalgorithm instances configured for use with\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.XOFHash\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe :mod:\u003ccode\u003eX.509 verification \u0026lt;cryptography.x509.verification\u0026gt;\u003c/code\u003e APIs are now\nconsidered stable and are subject to our API stability policy.\u003c/li\u003e\n\u003cli\u003eAdded the :doc:\u003ccode\u003e/cobblestone\u003c/code\u003e recipe, an implementation of the\nCobblestone-128 and Cobblestone-256 instantiations of the \u003ccode\u003eC2SP chunked-encryption specification \u0026lt;https://c2sp.org/chunked-encryption\u0026gt;\u003c/code\u003e_ for streaming authenticated\nencryption of large messages.\u003c/li\u003e\n\u003cli\u003eParsing a Signed Certificate Timestamp list now rejects encodings that\ncarry trailing bytes after the list or after an individual SCT, instead of\nsilently ignoring them.\u003c/li\u003e\n\u003cli\u003eAdded support for using :class:\u003ccode\u003e~cryptography.x509.Name\u003c/code\u003e as a field type in\nthe :doc:\u003ccode\u003e/hazmat/asn1/index\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eLoading a public key or an EC private key now rejects DER where the\n\u003ccode\u003esubjectPublicKey\u003c/code\u003e (or EC \u003ccode\u003epublicKey\u003c/code\u003e) \u003ccode\u003eBIT STRING\u003c/code\u003e declares a non-zero\nnumber of unused bits, instead of silently ignoring it.\u003c/li\u003e\n\u003cli\u003eParsing a CRL entry's \u003ccode\u003eInvalidityDate\u003c/code\u003e extension now rejects a\n\u003ccode\u003eGeneralizedTime\u003c/code\u003e that carries fractional seconds or another non-DER form,\nmatching the strict encoding already required for every other X.509 time\nfield.\u003c/li\u003e\n\u003cli\u003e:func:\u003ccode\u003e~cryptography.x509.ocsp.load_der_ocsp_request\u003c/code\u003e and\n:func:\u003ccode\u003e~cryptography.x509.ocsp.load_der_ocsp_response\u003c/code\u003e now reject a request\nor response whose \u003ccode\u003eversion\u003c/code\u003e field is not \u003ccode\u003ev1\u003c/code\u003e, the only version defined\nby RFC 6960, matching the version validation already performed when loading\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/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/dcb7050b807b00392fa9fe2eac7cb362fcf355cc\"\u003e\u003ccode\u003edcb7050\u003c/code\u003e\u003c/a\u003e Prepare for 50.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15372\"\u003e#15372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/53fccd93413a8d7f07d6d8999681f27b75cffa3f\"\u003e\u003ccode\u003e53fccd9\u003c/code\u003e\u003c/a\u003e Don't leak how PKCS#7 encryptedKey decryption failed (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15369\"\u003e#15369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d472f978470fbefa521b86d98b2ecccbbb4d1dd8\"\u003e\u003ccode\u003ed472f97\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e to all src/ Python files (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15371\"\u003e#15371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/908773d53829fb1466c6db364b31321c3cd8eb9a\"\u003e\u003ccode\u003e908773d\u003c/code\u003e\u003c/a\u003e Bump downstream dependencies in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15368\"\u003e#15368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2cc07cc948948211899bcb0cddd1fddf86e95812\"\u003e\u003ccode\u003e2cc07cc\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15367\"\u003e#15367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c94ede9f040fa44942f7139772603419000acf66\"\u003e\u003ccode\u003ec94ede9\u003c/code\u003e\u003c/a\u003e chore(deps): bump ruff from 0.16.0 to 0.16.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15366\"\u003e#15366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67a8308dc9ea4cce6056e0f1438f903c208c3f35\"\u003e\u003ccode\u003e67a8308\u003c/code\u003e\u003c/a\u003e chore(deps): bump virtualenv from 21.7.0 to 21.7.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15365\"\u003e#15365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/95018ffcdbbc510fd92fc872e3a3e80aa6e58596\"\u003e\u003ccode\u003e95018ff\u003c/code\u003e\u003c/a\u003e Release the GIL in one-shot AEAD encrypt/decrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15361\"\u003e#15361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6954733eaf55a0074abf88f06f7242dfca3a5d02\"\u003e\u003ccode\u003e6954733\u003c/code\u003e\u003c/a\u003e Release the GIL during DH and DSA parameter generation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15364\"\u003e#15364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/49.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dateparser` from 1.4.1 to 1.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scrapinghub/dateparser/releases\"\u003edateparser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.3\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake parsing thread-safe: parsing from several threads no longer\nraises an intermittent \u003ccode\u003eKeyError\u003c/code\u003e from the shared language caches,\nand a \u003ccode\u003eDATE_ORDER\u003c/code\u003e or \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e value meant for one parse no\nlonger leaks into the settings that other parses read, where it could\nmake them return a wrong date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not share the language detector and the detected locale between\n\u003ccode\u003esearch_dates()\u003c/code\u003e calls, so concurrent searches over text in\ndifferent languages no longer return \u003ccode\u003eNone\u003c/code\u003e or a date read in the\nwrong locale (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve the \u003ccode\u003eBST\u003c/code\u003e and \u003ccode\u003eHDT\u003c/code\u003e timezone abbreviations to the offsets\nthe tz database gives them, UTC+1 (British Summer Time) and UTC-9\n(Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no\nzone goes by those names today; abbreviations that the tz database\nmaps to more than one offset, such as \u003ccode\u003eCST\u003c/code\u003e and \u003ccode\u003eIST\u003c/code\u003e, keep their\ncurrent offset. Text carrying these abbreviations keeps its wall clock\nbut moves by 10 hours for \u003ccode\u003eBST\u003c/code\u003e and 30 minutes for \u003ccode\u003eHDT\u003c/code\u003e, which can\nput the parsed instant on a different day (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject a \u003ccode\u003e%j\u003c/code\u003e (day of year) value that the parsed year does not\nhave, instead of rolling it over into the next year, so \u0026quot;1999366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%Y%j\u0026quot;]\u003c/code\u003e returns \u003ccode\u003eNone\u003c/code\u003e rather than 2000-01-01. A\nformat with no year directive is checked against the year \u003ccode\u003estrptime\u003c/code\u003e\ndefaults to, 1900, which is not a leap year, so \u0026quot;366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%j\u0026quot;]\u003c/code\u003e now returns \u003ccode\u003eNone\u003c/code\u003e where it used to return\nJanuary 1 (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCleanups and internal improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CodSpeed benchmarks and a workflow that runs them, so a\nperformance regression such as the quadratic backtracking fixed in\n1.4.1 is reported on the pull request that introduces it (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.2\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an \u003ccode\u003eIGNORE_SURROUNDING_TEXT\u003c/code\u003e setting that, when enabled, retries parsing after ignoring leading and trailing words the language does not recognize, so a date wrapped in extra text such as \u0026quot;Published on\n16/04/2019\u0026quot; is parsed (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003estrategy\u003c/code\u003e argument to \u003ccode\u003esearch_dates()\u003c/code\u003e to choose the search strategy: the default \u003ccode\u003e\u0026quot;split\u0026quot;\u003c/code\u003e keeps the current behavior, while the new \u003ccode\u003e\u0026quot;ngram\u0026quot;\u003c/code\u003e strategy parses the longest sequences of tokens as\ndates for more predictable results on noisy text (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not read a two-digit number as a year once a later component has been found in year-first date orders, so the day in Japanese dates such as \u0026quot;4月20日\u0026quot; is no longer consumed as the year (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse ISO 8601 dates (those starting with a four-digit year) in month-day order even when an explicit day-first language such as \u003ccode\u003eit\u003c/code\u003e or \u003ccode\u003efr\u003c/code\u003e is given, without needing to set \u003ccode\u003ePREFER_LOCALE_DATE_ORDER\u003c/code\u003e to\n\u003ccode\u003eFalse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1352\"\u003e#1352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHonor \u003ccode\u003ePREFER_DATES_FROM\u003c/code\u003e and \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e when parsing with custom \u003ccode\u003edate_formats\u003c/code\u003e that use a two-digit year (\u003ccode\u003e%y\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1342\"\u003e#1342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHonor the \u003ccode\u003e%j\u003c/code\u003e (day of year) directive in \u003ccode\u003edate_formats\u003c/code\u003e instead of overwriting the parsed month and day with the current date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1345\"\u003e#1345\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/scrapinghub/dateparser/blob/master/HISTORY.rst\"\u003edateparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.3 (2026-09-03)\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake parsing thread-safe: parsing from several threads no longer\nraises an intermittent \u003ccode\u003eKeyError\u003c/code\u003e from the shared language caches,\nand a \u003ccode\u003eDATE_ORDER\u003c/code\u003e or \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e value meant for one parse no\nlonger leaks into the settings that other parses read, where it could\nmake them return a wrong date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not share the language detector and the detected locale between\n\u003ccode\u003esearch_dates()\u003c/code\u003e calls, so concurrent searches over text in\ndifferent languages no longer return \u003ccode\u003eNone\u003c/code\u003e or a date read in the\nwrong locale (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve the \u003ccode\u003eBST\u003c/code\u003e and \u003ccode\u003eHDT\u003c/code\u003e timezone abbreviations to the offsets\nthe tz database gives them, UTC+1 (British Summer Time) and UTC-9\n(Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no\nzone goes by those names today; abbreviations that the tz database\nmaps to more than one offset, such as \u003ccode\u003eCST\u003c/code\u003e and \u003ccode\u003eIST\u003c/code\u003e, keep their\ncurrent offset. Text carrying these abbreviations keeps its wall clock\nbut moves by 10 hours for \u003ccode\u003eBST\u003c/code\u003e and 30 minutes for \u003ccode\u003eHDT\u003c/code\u003e, which can\nput the parsed instant on a different day (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject a \u003ccode\u003e%j\u003c/code\u003e (day of year) value that the parsed year does not\nhave, instead of rolling it over into the next year, so \u0026quot;1999366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%Y%j\u0026quot;]\u003c/code\u003e returns \u003ccode\u003eNone\u003c/code\u003e rather than 2000-01-01. A\nformat with no year directive is checked against the year \u003ccode\u003estrptime\u003c/code\u003e\ndefaults to, 1900, which is not a leap year, so \u0026quot;366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%j\u0026quot;]\u003c/code\u003e now returns \u003ccode\u003eNone\u003c/code\u003e where it used to return\nJanuary 1 (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCleanups and internal improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CodSpeed benchmarks and a workflow that runs them, so a\nperformance regression such as the quadratic backtracking fixed in\n1.4.1 is reported on the pull request that introduces it (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.2 (2026-08-04)\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an \u003ccode\u003eIGNORE_SURROUNDING_TEXT\u003c/code\u003e setting that, when enabled, retries\nparsing after ignoring the leading and trailing words the language does\nnot recognize, so a date wrapped in extra text such as \u0026quot;Published on\n16/04/2019\u0026quot; is parsed (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003estrategy\u003c/code\u003e argument to \u003ccode\u003esearch_dates()\u003c/code\u003e to choose the search\nstrategy: the default \u003ccode\u003e\u0026quot;split\u0026quot;\u003c/code\u003e keeps the current behavior, while the\nnew \u003ccode\u003e\u0026quot;ngram\u0026quot;\u003c/code\u003e strategy parses the longest sequences of tokens as dates\nfor more predictable results on noisy text (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1351\"\u003e#1351\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/scrapinghub/dateparser/commit/9ce60b1958f1b285886bcfbb743f6419feacfc92\"\u003e\u003ccode\u003e9ce60b1\u003c/code\u003e\u003c/a\u003e 1.4.3 release (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/27182cd1b89111fb8978b3a10acc6f474f0cd320\"\u003e\u003ccode\u003e27182cd\u003c/code\u003e\u003c/a\u003e Avoid shared language_detector and locale cache in search_dates (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/6b5f17d35a7bc4d5aa62ca4c90eea19d7e343490\"\u003e\u003ccode\u003e6b5f17d\u003c/code\u003e\u003c/a\u003e Reject a %j day of year that the parsed year does not have (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/271\"\u003e#271\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/cd9bb13e63f41eb5f44074cfdc73a41aa62293e1\"\u003e\u003ccode\u003ecd9bb13\u003c/code\u003e\u003c/a\u003e Make thread-safe (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/de7b986fa1fe3c7830bdb922435501ad871c55c3\"\u003e\u003ccode\u003ede7b986\u003c/code\u003e\u003c/a\u003e tests: add CodSpeed benchmarks (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/764091d174abc38ac2fbadbe686fdf734352aead\"\u003e\u003ccode\u003e764091d\u003c/code\u003e\u003c/a\u003e Fix timezone ambiguity using tz database (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1322\"\u003e#1322\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/b1f603e9b562156ea97aa6b2da08dd69266bbd47\"\u003e\u003ccode\u003eb1f603e\u003c/code\u003e\u003c/a\u003e 1.4.2 release (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/ff3dcb99f3cd4d4b9c727ceca7f83d8b4b4bc9d3\"\u003e\u003ccode\u003eff3dcb9\u003c/code\u003e\u003c/a\u003e Specify README header content as RST (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1360\"\u003e#1360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/d886e231f40e91f6bcb046dc4986e7e7efeaf937\"\u003e\u003ccode\u003ed886e23\u003c/code\u003e\u003c/a\u003e Parse dates wrapped in harmless extra text (Close \u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/518\"\u003e#518\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/06ca032deff4d5eec281af4030f34b46e9fe7adc\"\u003e\u003ccode\u003e06ca032\u003c/code\u003e\u003c/a\u003e Do not read the day as a two-digit year after the year position (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scrapinghub/dateparser/compare/v1.4.1...v1.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.2 to 2026.3.post1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/661bca921e29dc3eedd4430bac70816c9154c05e\"\u003e\u003ccode\u003e661bca9\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.3.post1 for python2 fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/1e31a162477bfd338df4651cbb55d35a86a15cd1\"\u003e\u003ccode\u003e1e31a16\u003c/code\u003e\u003c/a\u003e Log python version running tests, force python2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b3ca7c3fc264252e7f8162229f9d0dc4410037ee\"\u003e\u003ccode\u003eb3ca7c3\u003c/code\u003e\u003c/a\u003e Unix line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b55039a6ad038432bfc8e718f1852f54599bfa30\"\u003e\u003ccode\u003eb55039a\u003c/code\u003e\u003c/a\u003e Replace non-ASCII character in comment to fix build with Python 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/5420ee2c14c95abd5258c0e43381ac9430647ab8\"\u003e\u003ccode\u003e5420ee2\u003c/code\u003e\u003c/a\u003e Replace non-ASCII character in comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/2c139e800b5353eb6bb9649ee51fc177b51c4e9e\"\u003e\u003ccode\u003e2c139e8\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/localize-overflow-at-datetime-extremes' of \u003ca href=\"https://github.c\"\u003ehttps://github.c\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/c843864ba959a0def449dfe5c4f1547308ab8eb1\"\u003e\u003ccode\u003ec843864\u003c/code\u003e\u003c/a\u003e Run zdump tests quietly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/518500c68a9ed1f6cda32101004c38b4cc1d6fa6\"\u003e\u003ccode\u003e518500c\u003c/code\u003e\u003c/a\u003e Reduce noise when collecting zdump info dumps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/081f935fbc519305e147480ecd3410052f07816c\"\u003e\u003ccode\u003e081f935\u003c/code\u003e\u003c/a\u003e Merge branch 'kytta-fix-dst' into 2026c\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8c9d69b125dabe489741e1eb24ba14fcf4a7e7c9\"\u003e\u003ccode\u003e8c9d69b\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into 2026c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.2...release_2026.3.post1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.22.1 to 4.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereject NaN in numeric range validators by \u003ca href=\"https://github.com/kudala-bharani\"\u003e\u003ccode\u003e@​kudala-bharani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/942\"\u003eBrianPugh/cyclopts#942\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/kudala-bharani\"\u003e\u003ccode\u003e@​kudala-bharani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/942\"\u003eBrianPugh/cyclopts#942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.25.1...v4.25.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.25.1...v4.25.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.25.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eallow_leading_hyphen=True\u003c/code\u003e positional values intact when a later char matches a short option by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/934\"\u003eBrianPugh/cyclopts#934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor subcommand-level configuration via the invoked command's app-stack (\u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/933\"\u003e#933\u003c/a\u003e) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/938\"\u003eBrianPugh/cyclopts#938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fail a hung test in 60s via pytest-timeout instead of stalling the job by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/937\"\u003eBrianPugh/cyclopts#937\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003especial thanks to \u003ca href=\"https://github.com/yilei\"\u003e\u003ccode\u003e@​yilei\u003c/code\u003e\u003c/a\u003e for identifying these bugs!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.25.0...v4.25.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.25.0...v4.25.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInteractive shell no longer exits on Ctrl-C or malformed input by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/925\"\u003eBrianPugh/cyclopts#925\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eReport unbalanced quotes as a TokenizationError instead of a raw ValueError by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/926\"\u003eBrianPugh/cyclopts#926\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): render root default_command params/usage in RST (Sphinx) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/924\"\u003eBrianPugh/cyclopts#924\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix link formatting in Sphinx to be blue even in code blocks by \u003ca href=\"https://github.com/relativityspace-jsmith\"\u003e\u003ccode\u003e@​relativityspace-jsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/922\"\u003eBrianPugh/cyclopts#922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix pre-commit cache key so hook environments are actually reused by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/928\"\u003eBrianPugh/cyclopts#928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: make codecov statuses informational (non-blocking) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/930\"\u003eBrianPugh/cyclopts#930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up CI ~40% by parallelizing lint/type-check/docs and caching setup by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/931\"\u003eBrianPugh/cyclopts#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove low-value restatement comments by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/929\"\u003eBrianPugh/cyclopts#929\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/relativityspace-jsmith\"\u003e\u003ccode\u003e@​relativityspace-jsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/922\"\u003eBrianPugh/cyclopts#922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.24.0...v4.25.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.24.0...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eParameter.choices\u003c/code\u003e by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/921\"\u003eBrianPugh/cyclopts#921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConfigurable encoding for file \u003ccode\u003eConfig\u003c/code\u003e sources by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/918\"\u003eBrianPugh/cyclopts#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\u0026quot;sys_exit_if_non_zero_else_return\u0026quot;\u003c/code\u003e result action and document result_action modes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/907\"\u003eBrianPugh/cyclopts#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSphinx: add :anchor-prefix:/:anchor-suffix: to namespace ref labels by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/913\"\u003eBrianPugh/cyclopts#913\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/BrianPugh/cyclopts/commit/efc7da13c8f9eb88c396ceb151e08d07780616bc\"\u003e\u003ccode\u003eefc7da1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/942\"\u003e#942\u003c/a\u003e from kudala-bharani/fix/number-reject-nan\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/7a01b21e49d18c57d536083f12eac68e778fa840\"\u003e\u003ccode\u003e7a01b21\u003c/code\u003e\u003c/a\u003e fix: reject NaN in numeric range validators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f109666d39669ae81c28a7c6274ca2d0b640d2ae\"\u003e\u003ccode\u003ef109666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/938\"\u003e#938\u003c/a\u003e from BrianPugh/fix-subcommand-config-appstack-933\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ee32db8adfbc32a16e5bef650d5cfe0388a2bc96\"\u003e\u003ccode\u003eee32db8\u003c/code\u003e\u003c/a\u003e docs: explain why default_parameter chains all frames while resolve uses only...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/31f77346580b3db5b94c8e348717719673bf7351\"\u003e\u003ccode\u003e31f7734\u003c/code\u003e\u003c/a\u003e fix: scope config resolution to the innermost invocation so re-entrant siblin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/234fc970afd187a49a42ffb80e22713a17287ebf\"\u003e\u003ccode\u003e234fc97\u003c/code\u003e\u003c/a\u003e test: cover subcommand-level configuration resolution (\u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/933\"\u003e#933\u003c/a\u003e family)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad76eb850ded309c466cf878beb382701c47e3f7\"\u003e\u003ccode\u003ead76eb8\u003c/code\u003e\u003c/a\u003e fix: honor subcommand-level configuration by resolving from the invoked comma...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/a804cf68eaa84f91022b7ed116efa7449af7d9e3\"\u003e\u003ccode\u003ea804cf6\u003c/code\u003e\u003c/a\u003e ci: fail a hung test in 60s via pytest-timeout instead of stalling the job (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f5233f958be003c418a2c348d54184fbcdce4adb\"\u003e\u003ccode\u003ef5233f9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/934\"\u003e#934\u003c/a\u003e from BrianPugh/fix-combined-short-leading-hyphen-932\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4356a86f9aeccf7d8b6bacdeb3799771becc375a\"\u003e\u003ccode\u003e4356a86\u003c/code\u003e\u003c/a\u003e style: tighten comments on the mistyped-combined-short message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.22.1...v4.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.14.1 to 4.15.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.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.1...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.5 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev...\n\n_Description has been truncated_","html_url":"https://github.com/curento/prefect/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/curento%2Fprefect/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"},{"uuid":"5468119417","node_id":"PR_kwDOMeL2Hc8AAAABDryu6g","number":34,"state":"open","title":"Bump cachetools from 5.5.0 to 7.1.8 in /gsuite","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T22:44:12.000Z","updated_at":"2026-09-15T22:44:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"cachetools","old_version":"5.5.0","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/gsuite","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 5.5.0 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.0...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=5.5.0\u0026new-version=7.1.8)](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/corsis-tech/vp-scripts-public/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/corsis-tech%2Fvp-scripts-public/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"5464198318","node_id":"PR_kwDONWfh6s8AAAABDomlSQ","number":1893,"state":"open","title":"chore(deps): Bump the python group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T15:48:05.000Z","updated_at":"2026-09-15T15:55:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python","update_count":73,"packages":[{"name":"tomlkit","old_version":"0.15.0","new_version":"0.15.1","repository_url":"https://github.com/python-poetry/tomlkit"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ty","old_version":"0.0.38","new_version":"0.0.79","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.13","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"huggingface-hub","old_version":"1.15.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"llama-index-core","old_version":"0.14.22","new_version":"0.14.24","repository_url":"https://github.com/run-llama/llama_index"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"nats-py","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/nats-io/nats.py"},{"name":"llama-index-vector-stores-milvus","old_version":"1.1.0","new_version":"1.2.0"},{"name":"llama-index-readers-file","old_version":"0.6.0","new_version":"0.7.0"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"openinference-instrumentation","old_version":"0.1.51","new_version":"0.1.61","repository_url":"https://github.com/Arize-ai/openinference"},{"name":"openinference-instrumentation-llama-index","old_version":"4.4.2","new_version":"4.4.8","repository_url":"https://github.com/Arize-ai/openinference"},{"name":"opentelemetry-api","old_version":"1.42.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"llama-index-storage-docstore-mongodb","old_version":"0.5.0","new_version":"0.6.0"},{"name":"llama-index-llms-openai-like","old_version":"0.7.2","new_version":"0.8.0"},{"name":"transformers","old_version":"5.8.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"azure-storage-file-datalake","old_version":"12.24.0","new_version":"12.25.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"adlfs","old_version":"2026.5.0","new_version":"2026.8.0","repository_url":"https://github.com/fsspec/adlfs"},{"name":"redis","old_version":"7.4.0","new_version":"7.4.1","repository_url":"https://github.com/redis/redis-py"},{"name":"openai","old_version":"2.37.0","new_version":"2.54.0","repository_url":"https://github.com/openai/openai-python"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"llama-index-embeddings-openai-like","old_version":"0.3.1","new_version":"0.4.0"},{"name":"llama-index-postprocessor-cohere-rerank","old_version":"0.8.0","new_version":"0.10.0"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"pypdf","old_version":"6.11.0","new_version":"6.16.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"langfuse","old_version":"4.6.1","new_version":"4.15.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"apprise","old_version":"1.10.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"langchain-neo4j","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/langchain-ai/langchain-neo4j"},{"name":"neo4j","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/neo4j/neo4j-python-driver"},{"name":"starlette","old_version":"1.1.0","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"cryptography","old_version":"48.0.0","new_version":"48.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"matplotlib","old_version":"3.10.9","new_version":"3.11.1","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas-stubs","old_version":"3.0.0.260204","new_version":"3.0.5.260730","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"fastmcp","old_version":"3.3.1","new_version":"3.4.7","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"llama-index-llms-azure-openai","old_version":"0.5.5","new_version":"0.6.0"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.2.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"llama-index-embeddings-text-embeddings-inference","old_version":"0.5.0","new_version":"0.6.0"},{"name":"python-multipart","old_version":"0.0.29","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"dagster-webserver","old_version":"1.13.5","new_version":"1.13.21","repository_url":"https://github.com/dagster-io/dagster"},{"name":"dagster-apprise","old_version":"0.0.2","new_version":"0.0.3"},{"name":"clickhouse-connect","old_version":"1.0.1","new_version":"1.7.2","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"pymilvus","old_version":"2.6.14","new_version":"2.6.17","repository_url":"https://github.com/milvus-io/pymilvus"},{"name":"sqlalchemy","old_version":"2.0.49","new_version":"2.0.52","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 52 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tomlkit](https://github.com/python-poetry/tomlkit) | `0.15.0` | `0.15.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.38` | `0.0.79` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.16.5` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.15.0` | `1.29.0` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.22` | `0.14.24` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.15.0` |\n| [nats-py](https://github.com/nats-io/nats.py) | `2.14.0` | `2.15.0` |\n| llama-index-vector-stores-milvus | `1.1.0` | `1.2.0` |\n| llama-index-readers-file | `0.6.0` | `0.7.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [openinference-instrumentation](https://github.com/Arize-ai/openinference) | `0.1.51` | `0.1.61` |\n| [openinference-instrumentation-llama-index](https://github.com/Arize-ai/openinference) | `4.4.2` | `4.4.8` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.0` | `1.44.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| llama-index-storage-docstore-mongodb | `0.5.0` | `0.6.0` |\n| llama-index-llms-openai-like | `0.7.2` | `0.8.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.8.1` | `5.16.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.141.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.24.0` | `12.25.0` |\n| [adlfs](https://github.com/fsspec/adlfs) | `2026.5.0` | `2026.8.0` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `7.4.1` |\n| [openai](https://github.com/openai/openai-python) | `2.37.0` | `2.54.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.8` |\n| llama-index-embeddings-openai-like | `0.3.1` | `0.4.0` |\n| llama-index-postprocessor-cohere-rerank | `0.8.0` | `0.10.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.11.0` | `6.16.2` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.6.1` | `4.15.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.13.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [langchain-neo4j](https://github.com/langchain-ai/langchain-neo4j) | `0.9.0` | `0.10.0` |\n| [neo4j](https://github.com/neo4j/neo4j-python-driver) | `6.2.0` | `6.3.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.1.0` | `1.6.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `48.0.0` | `48.0.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.9` | `3.11.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `3.0.0.260204` | `3.0.5.260730` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.3.1` | `3.4.7` |\n| llama-index-llms-azure-openai | `0.5.5` | `0.6.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.2.0` |\n| llama-index-embeddings-text-embeddings-inference | `0.5.0` | `0.6.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.29` | `0.0.32` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.52.4` |\n| [dagster-webserver](https://github.com/dagster-io/dagster) | `1.13.5` | `1.13.21` |\n| dagster-apprise | `0.0.2` | `0.0.3` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `1.0.1` | `1.7.2` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [pymilvus](https://github.com/milvus-io/pymilvus) | `2.6.14` | `2.6.17` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.49` | `2.0.52` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n\n\nUpdates `tomlkit` from 0.15.0 to 0.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/tomlkit/releases\"\u003etomlkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix inline table separator after append by \u003ca href=\"https://github.com/cyliu0\"\u003e\u003ccode\u003e@​cyliu0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/477\"\u003epython-poetry/tomlkit#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump idna from 3.7 to 3.15 in /docs 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/python-poetry/tomlkit/pull/481\"\u003epython-poetry/tomlkit#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump idna from 3.7 to 3.15 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/python-poetry/tomlkit/pull/480\"\u003epython-poetry/tomlkit#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump urllib3 from 2.5.0 to 2.7.0 in /docs 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/python-poetry/tomlkit/pull/475\"\u003epython-poetry/tomlkit#475\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/python-poetry/tomlkit/pull/478\"\u003epython-poetry/tomlkit#478\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/python-poetry/tomlkit/pull/484\"\u003epython-poetry/tomlkit#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicated comma when removing a middle inline table element by \u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/486\"\u003epython-poetry/tomlkit#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd native \u003cstrong\u003econtains\u003c/strong\u003e to Container, Table and InlineTable by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/487\"\u003epython-poetry/tomlkit#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake Source index-based instead of materializing a char list by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/489\"\u003epython-poetry/tomlkit#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject surrogate code points in \\U unicode escapes by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/493\"\u003epython-poetry/tomlkit#493\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/python-poetry/tomlkit/pull/496\"\u003epython-poetry/tomlkit#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eScan character runs in bulk while parsing by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/490\"\u003epython-poetry/tomlkit#490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix doubled comma when inserting into a comma-first array by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/499\"\u003epython-poetry/tomlkit#499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject tab characters in bare keys by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/497\"\u003epython-poetry/tomlkit#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject non-hex digits in \\u and \\U escapes by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/501\"\u003epython-poetry/tomlkit#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBulk-scan single-line string bodies by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003epython-poetry/tomlkit#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the internal TOMLChar wrapper by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/492\"\u003epython-poetry/tomlkit#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix corrupt output when adding to a dotted key inside an inline table by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/500\"\u003epython-poetry/tomlkit#500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompare StringType members by identity instead of building a set by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/502\"\u003epython-poetry/tomlkit#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge super tables in place instead of deep-copying on every merge by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/503\"\u003epython-poetry/tomlkit#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove a value replacing a table out of the table region by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/506\"\u003epython-poetry/tomlkit#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore dumps() delegating to as_string for non-Mapping wrappers by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/508\"\u003epython-poetry/tomlkit#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit parser nesting depth instead of crashing with RecursionError by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/510\"\u003epython-poetry/tomlkit#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefix every line of a multiline comment with # by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/511\"\u003epython-poetry/tomlkit#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a native OutOfOrderTableProxy.\u003cstrong\u003econtains\u003c/strong\u003e by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/515\"\u003epython-poetry/tomlkit#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePlace inline-table separator after the value, not a trailing comment (fix \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/512\"\u003e#512\u003c/a\u003e) by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/514\"\u003epython-poetry/tomlkit#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject a table redefined after its parent table header by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/516\"\u003epython-poetry/tomlkit#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't build a discarded error when an array closes right after a value by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/517\"\u003epython-poetry/tomlkit#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate out-of-order tables incrementally while parsing by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/509\"\u003epython-poetry/tomlkit#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn a single key from key() for a single-element list (fixes \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/430\"\u003e#430\u003c/a\u003e) by \u003ca href=\"https://github.com/tienvantranspk-tech\"\u003e\u003ccode\u003e@​tienvantranspk-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/520\"\u003epython-poetry/tomlkit#520\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/python-poetry/tomlkit/pull/522\"\u003epython-poetry/tomlkit#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up unwrap() by resolving keys from the key map instead of items() by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/521\"\u003epython-poetry/tomlkit#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge AoT fragments when building an out-of-order table proxy by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/507\"\u003epython-poetry/tomlkit#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBulk-scan multiline string bodies by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/518\"\u003epython-poetry/tomlkit#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject array-of-tables header missing its second closing bracket by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/519\"\u003epython-poetry/tomlkit#519\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/python-poetry/tomlkit/pull/541\"\u003epython-poetry/tomlkit#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ParseError when a sub-table extends an array of tables out of order by \u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/498\"\u003epython-poetry/tomlkit#498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRender inline tables in O(n) instead of O(n²) by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/525\"\u003epython-poetry/tomlkit#525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicated prefix and captured sibling when replacing a dotted key with a table by \u003ca href=\"https://github.com/Labib-Bin-Salam\"\u003e\u003ccode\u003e@​Labib-Bin-Salam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/526\"\u003epython-poetry/tomlkit#526\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject tables inserted into inline tables by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/532\"\u003epython-poetry/tomlkit#532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eraise on malformed array element instead of dropping it by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/527\"\u003epython-poetry/tomlkit#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject out-of-order concrete+super table redefinitions at parse time by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/530\"\u003epython-poetry/tomlkit#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep newline after dotted inline table by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/533\"\u003epython-poetry/tomlkit#533\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/python-poetry/tomlkit/pull/548\"\u003epython-poetry/tomlkit#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump soupsieve from 2.5 to 2.8.4 in /docs 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/python-poetry/tomlkit/pull/560\"\u003epython-poetry/tomlkit#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump soupsieve from 2.4.1 to 2.8.4 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/python-poetry/tomlkit/pull/559\"\u003epython-poetry/tomlkit#559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve whitespace when replacing super tables by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/534\"\u003epython-poetry/tomlkit#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve table display names on self assignment by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/537\"\u003epython-poetry/tomlkit#537\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/tomlkit/blob/master/CHANGELOG.md\"\u003etomlkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.15.1] - 2026-07-17\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up membership tests (\u003ccode\u003ekey in ...\u003c/code\u003e) on \u003ccode\u003eContainer\u003c/code\u003e, \u003ccode\u003eTable\u003c/code\u003e and \u003ccode\u003eInlineTable\u003c/code\u003e with native \u003ccode\u003e__contains__\u003c/code\u003e implementations, avoiding the inherited \u003ccode\u003eMutableMapping\u003c/code\u003e round-trip through \u003ccode\u003e__getitem__\u003c/code\u003e (which resolves the value and builds an exception on every absent key). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by making \u003ccode\u003eSource\u003c/code\u003e index-based: it now tracks an integer position over the input string instead of materializing a list of \u003ccode\u003e(index, char)\u003c/code\u003e tuples up front, so construction is O(1) and state save/restore no longer copies an iterator. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by scanning character runs in bulk: \u003ccode\u003eSource.advance_while\u003c/code\u003e/\u003ccode\u003eadvance_until\u003c/code\u003e consume a whole run of whitespace, bare-key or number characters in a single pass over the input string instead of one \u003ccode\u003einc()\u003c/code\u003e call per character. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of single-line strings by bulk-appending the run of ordinary characters up to the next delimiter, backslash or control character in one pass, instead of one character at a time. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by removing the internal \u003ccode\u003eTOMLChar\u003c/code\u003e wrapper: the parser now reads plain \u003ccode\u003estr\u003c/code\u003e characters from \u003ccode\u003eSource\u003c/code\u003e and detects end-of-input positionally, avoiding a per-character object construction and method dispatch. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by comparing \u003ccode\u003eStringType\u003c/code\u003e members by identity (\u003ccode\u003eis\u003c/code\u003e) instead of building a set on every \u003ccode\u003eis_basic\u003c/code\u003e/\u003ccode\u003eis_literal\u003c/code\u003e/\u003ccode\u003eis_singleline\u003c/code\u003e/\u003ccode\u003eis_multiline\u003c/code\u003e call, avoiding millions of enum hashes while parsing. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up merging super tables by merging in place instead of deep-copying the growing target on every merge, turning the parse of documents with many subtables under a shared super table (e.g. consecutive \u003ccode\u003e[a.b.c]\u003c/code\u003e / \u003ccode\u003e[a.b.d]\u003c/code\u003e headers) from O(n²) into O(n). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up membership tests (\u003ccode\u003ekey in ...\u003c/code\u003e) on out-of-order tables with a native \u003ccode\u003eOutOfOrderTableProxy.__contains__\u003c/code\u003e, completing \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/483\"\u003e#483\u003c/a\u003e for the last mapping type that still inherited the slow \u003ccode\u003eMutableMapping\u003c/code\u003e mixin (which resolves the value and builds an exception on every absent key). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing documents with many dotted keys or table headers sharing a prefix by validating out-of-order tables incrementally: each new fragment is merged into a cached validation container once, instead of re-merging (and deep-copying) every earlier fragment on each append, turning a super-cubic worst case into linear time (80 shared-prefix dotted keys: ~8 s → ~10 ms). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of arrays that close right after a value (e.g. the \u003ccode\u003efiles = [...]\u003c/code\u003e blocks that dominate lock files): the parser no longer attempts to read a value while sitting on the closing \u003ccode\u003e]\u003c/code\u003e, which previously built an \u003ccode\u003eUnexpectedCharError\u003c/code\u003e just to discard it — and constructing that exception eagerly computes a line/column by scanning the whole document, making it O(document size) per such array. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of multiline strings by bulk-appending the run of ordinary characters — across raw line feeds and tabs — up to the next delimiter, backslash, carriage return or control character, instead of one character at a time. This extends to \u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003e/\u003ccode\u003e'''\u003c/code\u003e bodies the single-line fast path added in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003e#491\u003c/a\u003e; a \u003ccode\u003e\\r\u003c/code\u003e still stops the scan so \u003ccode\u003e\\r\\n\u003c/code\u003e stays validated and byte-for-byte preserved. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eunwrap()\u003c/code\u003e (converting a parsed document to a plain \u003ccode\u003edict\u003c/code\u003e) by resolving each key directly from the container's key map instead of iterating the inherited \u003ccode\u003eMutableMapping\u003c/code\u003e view, which rebuilt a \u003ccode\u003eSingleKey\u003c/code\u003e from the bare string for every key just to re-look-up the value. Out-of-order tables still resolve through their proxy, so their validation is unchanged. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up rendering (\u003ccode\u003eas_string()\u003c/code\u003e / \u003ccode\u003edumps()\u003c/code\u003e) of inline tables with many keys by precomputing the last-key and last-deleted-element indices in a single pass, instead of rescanning the remaining body on every separator comma — turning an O(n²) render into O(n). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise on malformed array element instead of dropping it, (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estring()\u003c/code\u003e dropping a leading newline of a multiline string on round-trip: a value beginning with a newline is now rendered with an extra leading newline (the one the parser trims after the opening delimiter) so it survives re-parsing.\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated comma when removing a non-edge element from a parsed inline table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated comma when appending or inserting into a comma-first formatted array. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eParseError\u003c/code\u003e when a sub-table extends the last element of an array of tables after an unrelated table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix unparseable serialization when adding a key to a dotted-key table inside an inline table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a table replaced by a plain value being serialized inside the preceding table's body when other tables follow; the value now moves before the first table like other root-level values. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix assigning a table over a dotted key (e.g. \u003ccode\u003edoc[\u0026quot;a\u0026quot;] = {...}\u003c/code\u003e where \u003ccode\u003ea\u003c/code\u003e came from \u003ccode\u003ea.b = ...\u003c/code\u003e): the dotted prefix was duplicated onto the new \u003ccode\u003e[a]\u003c/code\u003e header, and the header then swallowed any sibling that follows it on round-trip. The replacement now renders as a plain table and, when needed, moves before the inline entries (values and dotted keys) it would otherwise capture. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/513\"\u003e#513\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003edumps()\u003c/code\u003e rendering mapping-like wrappers around a parsed document (e.g. \u003ccode\u003edotty_dict\u003c/code\u003e's \u003ccode\u003eDotty\u003c/code\u003e) through their delegated \u003ccode\u003eas_string\u003c/code\u003e, preserving the original table order and layout instead of re-encoding through a plain dict — a 0.15.0 regression. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix uncontrolled recursion when parsing deeply nested documents: crafted input could crash the process with a \u003ccode\u003eRecursionError\u003c/code\u003e. Values nested more than 100 levels deep and keys with more than 100 dotted fragments now raise \u003ccode\u003eParseError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecomment()\u003c/code\u003e producing invalid TOML for a multiline string by prefixing every line with \u003ccode\u003e#\u003c/code\u003e, not just the first. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/449\"\u003e#449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the separator comma being swallowed by a trailing comment when appending a key to a multiline inline table, leaving the new key without a separator so the result no longer round-trips. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eKeyAlreadyPresent\u003c/code\u003e error when parsing or accessing an out-of-order table whose array-of-tables elements are split across the table's parts. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOut-of-order value-vs-table and dotted-key-vs-table redefinitions are now rejected at parse time instead of being silently accepted or raising only on access. The parser also detects when a non-dotted key is a prefix of an existing dotted key, matching the stdlib \u003ccode\u003etomllib\u003c/code\u003e behaviour. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject tables inserted into inline tables instead of serializing invalid TOML. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix assigning an array of tables over a dotted key (e.g. \u003ccode\u003edoc[\u0026quot;a\u0026quot;] = aot(...)\u003c/code\u003e where \u003ccode\u003ea\u003c/code\u003e came from \u003ccode\u003ea.b = ...\u003c/code\u003e): the new \u003ccode\u003e[[a]]\u003c/code\u003e header kept the dotted key's inline position and swallowed the following dotted sibling on round-trip. The array of tables now renders past the inline entries it would otherwise capture, mirroring the table fix for \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/513\"\u003e#513\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a new top-level scalar being captured by a table rendered from a dotted key: appending a scalar after a dotted-key entry (e.g. \u003ccode\u003ea.b = 1\u003c/code\u003e) whose table had gained a \u003ccode\u003e[a.c]\u003c/code\u003e-style child placed the scalar inside that table's scope, silently re-nesting it on round-trip. Scalars now move before such an entry, like they do before regular tables. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated \u003ccode\u003e[table]\u003c/code\u003e header when adding a key to an out-of-order table whose concrete header is declared after its sub-tables; the new key now lands in the existing concrete part instead of giving the header-less super part a second header. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a table's display name (its exact header spelling, including whitespace and quoting) being normalised when the table is assigned onto itself, e.g. \u003ccode\u003edoc[k] = doc[k]\u003c/code\u003e rewriting \u003ccode\u003e[keys .'a'.'c']\u003c/code\u003e to \u003ccode\u003e[keys.a.'c']\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing newlines when appending a key after a dotted inline table, including when the original document has no trailing newline. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve trailing whitespace when replacing a super table, including assigning it onto itself. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estr()\u003c/code\u003e and \u003ccode\u003erepr()\u003c/code\u003e of out-of-order table proxies to show their merged values. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject decimal integer literals that exceed Python's integer-string conversion limit instead of coercing them to infinity. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/1bd7e3bc5bcc957d359a6c4d8e420163f32ac009\"\u003e\u003ccode\u003e1bd7e3b\u003c/code\u003e\u003c/a\u003e chore: release 0.15..1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/94e62fbef9d16093dec86728888474197f4a5cc7\"\u003e\u003ccode\u003e94e62fb\u003c/code\u003e\u003c/a\u003e Float is not a sequence  (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/495a42ecc9119eaaeb895def0fd025a71cd1cf60\"\u003e\u003ccode\u003e495a42e\u003c/code\u003e\u003c/a\u003e Fix top-level scalar captured by a table rendered from a dotted key (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/21a4942ed31e773061c9fc047d55b1bb3c637ee3\"\u003e\u003ccode\u003e21a4942\u003c/code\u003e\u003c/a\u003e reject a comment containing line breaks in Item.comment and add_line (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/8cd44f58b499da3c80a29bc877a512665a15e0bb\"\u003e\u003ccode\u003e8cd44f5\u003c/code\u003e\u003c/a\u003e fix: preserve leading newline of multiline string built with string() (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/67d3e86502706df2a9ed67114ab67e25bcdcbbb7\"\u003e\u003ccode\u003e67d3e86\u003c/code\u003e\u003c/a\u003e Fix array of tables replacing a dotted key swallowing the next sibling (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/542\"\u003e#542\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/e23a25438c6cc9b8cc28b6dcf76dc52f9c7a33e3\"\u003e\u003ccode\u003ee23a254\u003c/code\u003e\u003c/a\u003e fix: avoid duplicate table header when adding a key to an out-of-order table ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/34e51e2d6d09af86970f266a4217cea839fdc347\"\u003e\u003ccode\u003e34e51e2\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md to reflect recent fixes and enhancements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/b48c094775fba4cb3c16dea4c302ae5e371ac4e9\"\u003e\u003ccode\u003eb48c094\u003c/code\u003e\u003c/a\u003e reject overlong decimal integer instead of coercing to inf (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/cc05afa962244b3d1c781a7fc54f66b7f29ef8b7\"\u003e\u003ccode\u003ecc05afa\u003c/code\u003e\u003c/a\u003e Represent out-of-order table proxies with merged values (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/tomlkit/compare/0.15.0...0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.3 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\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/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1\"\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.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/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 v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\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/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.38 to 0.0.79\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.79\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-07.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid dict keyword-call panics when typing is shadowed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28292\"\u003e#28292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover configs in models derived from legacy generic classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28397\"\u003e#28397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize recursive collection-use constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28332\"\u003e#28332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecover cycles when constructing known class instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28289\"\u003e#28289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/pull/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostic improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eLiteral\u003c/code\u003e fixes for diagnostics flagging invalid type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28185\"\u003e#28185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eawait\u003c/code\u003e fixes for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28169\"\u003e#28169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eassert_never\u003c/code\u003e fixes for redundant final \u003ccode\u003eelif\u003c/code\u003e branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28178\"\u003e#28178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd defensive assertion fallback for redundant \u003ccode\u003eelif\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28179\"\u003e#28179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd rules to detect always-truthy and always-falsy conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28034\"\u003e#28034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire a direct dependency for \u003ccode\u003ereveal_type\u003c/code\u003e backport fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28177\"\u003e#28177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest variable-length tuple annotations for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28168\"\u003e#28168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign \u003ccode\u003eTypeIs\u003c/code\u003e and \u003ccode\u003eisinstance\u003c/code\u003e narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28193\"\u003e#28193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid falling back to \u003ccode\u003eUnknown\u003c/code\u003e when collecting type context constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28297\"\u003e#28297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ef is identity(f)\u003c/code\u003e evaluates to \u003ccode\u003eLiteral[True]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28360\"\u003e#28360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix callable specialization with union-valued \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28085\"\u003e#28085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer variance through recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28077\"\u003e#28077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow types with ordered length comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28264\"\u003e#28264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve gradual type context during generic call inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28091\"\u003e#28091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve nominal subtyping for top-materialized protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28271\"\u003e#28271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve outer type variables during \u003ccode\u003eParamSpec\u003c/code\u003e inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28306\"\u003e#28306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve protocol intersections when narrowing gradual types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28391\"\u003e#28391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePromote literals in nested (non-covariant) positions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28389\"\u003e#28389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSolve formal unions using constraint-sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28312\"\u003e#28312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28331\"\u003e#28331\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/cf09d2a4d7614f648e9109dce609887499a7c6ee...bc016545988403f13b2dd9b56e88b931683c80b1\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary work when building specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28369\"\u003e#28369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBypass materialization queries for simple types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28367\"\u003e#28367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache exception suppression for context managers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28376\"\u003e#28376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntern statement call predicates (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28373\"\u003e#28373\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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.79\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-07.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid dict keyword-call panics when typing is shadowed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28292\"\u003e#28292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover configs in models derived from legacy generic classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28397\"\u003e#28397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize recursive collection-use constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28332\"\u003e#28332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecover cycles when constructing known class instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28289\"\u003e#28289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/pull/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostic improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eLiteral\u003c/code\u003e fixes for diagnostics flagging invalid type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28185\"\u003e#28185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eawait\u003c/code\u003e fixes for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28169\"\u003e#28169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eassert_never\u003c/code\u003e fixes for redundant final \u003ccode\u003eelif\u003c/code\u003e branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28178\"\u003e#28178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd defensive assertion fallback for redundant \u003ccode\u003eelif\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28179\"\u003e#28179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd rules to detect always-truthy and always-falsy conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28034\"\u003e#28034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire a direct dependency for \u003ccode\u003ereveal_type\u003c/code\u003e backport fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28177\"\u003e#28177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest variable-length tuple annotations for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28168\"\u003e#28168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign \u003ccode\u003eTypeIs\u003c/code\u003e and \u003ccode\u003eisinstance\u003c/code\u003e narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28193\"\u003e#28193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid falling back to \u003ccode\u003eUnknown\u003c/code\u003e when collecting type context constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28297\"\u003e#28297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ef is identity(f)\u003c/code\u003e evaluates to \u003ccode\u003eLiteral[True]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28360\"\u003e#28360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix callable specialization with union-valued \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28085\"\u003e#28085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer variance through recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28077\"\u003e#28077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow types with ordered length comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28264\"\u003e#28264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve gradual type context during generic call inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28091\"\u003e#28091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve nominal subtyping for top-materialized protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28271\"\u003e#28271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve outer type variables during \u003ccode\u003eParamSpec\u003c/code\u003e inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28306\"\u003e#28306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve protocol intersections when narrowing gradual types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28391\"\u003e#28391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePromote literals in nested (non-covariant) positions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28389\"\u003e#28389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSolve formal unions using constraint-sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28312\"\u003e#28312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28331\"\u003e#28331\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/cf09d2a4d7614f648e9109dce609887499a7c6ee...bc016545988403f13b2dd9b56e88b931683c80b1\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary work when building specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28369\"\u003e#28369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBypass materialization queries for simple types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28367\"\u003e#28367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache exception suppression for context managers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28376\"\u003e#28376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntern statement call predicates (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28373\"\u003e#28373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily compute argument-context specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28378\"\u003e#28378\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/ty/commit/b4cd79275b7ce22c4cf4208f8b005adb53e92523\"\u003e\u003ccode\u003eb4cd792\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.79 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/52f2d5b12ff4a86f1100f3b9c3e2d61b086d8a89\"\u003e\u003ccode\u003e52f2d5b\u003c/code\u003e\u003c/a\u003e Add a GitHub repository threat model for ty (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fd0d789cc54f9a234da75025ef6d0777280675be\"\u003e\u003ccode\u003efd0d789\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4476\"\u003e#4476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7e7a87da9849d3f322690ae5b74b0409799668b6\"\u003e\u003ccode\u003e7e7a87d\u003c/code\u003e\u003c/a\u003e Improve rooster-generated changelog sections (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4473\"\u003e#4473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f862d1f3230ec51f9a27e53ccba34a1f0f5cd1d3\"\u003e\u003ccode\u003ef862d1f\u003c/code\u003e\u003c/a\u003e Document mappings for new ty rules (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4475\"\u003e#4475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/23fced1ccadb590bb019b05e4ebc34a7f563d028\"\u003e\u003ccode\u003e23fced1\u003c/code\u003e\u003c/a\u003e Allow Ruff to format our docs examples (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3c907bc81cd4bfd40058648bf196b7626a61f0b8\"\u003e\u003ccode\u003e3c907bc\u003c/code\u003e\u003c/a\u003e [ty] Embed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/873885ea8e73a49b6c95e38cdec3186e3db2ef97\"\u003e\u003ccode\u003e873885e\u003c/code\u003e\u003c/a\u003e [ty] Use the shared release smoke-test action (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4461\"\u003e#4461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/dca9f9873896bc3bfdb7db6459fd54f80fac3fa6\"\u003e\u003ccode\u003edca9f98\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.78 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4452\"\u003e#4452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/2bd3de297915d77361aab430d448a7d51fc5774b\"\u003e\u003ccode\u003e2bd3de2\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003estrict-literal-narrowing\u003c/code\u003e to \u003ccode\u003estrict-equality-semantics\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.38...0.0.79\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.16.5\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.16.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.16.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.16.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-20.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH116\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26460\"\u003e#26460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Restrict \u003ccode\u003edelete-full-slice\u003c/code\u003e to lists (\u003ccode\u003eFURB131\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27711\"\u003e#27711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Skip \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e when the \u003ccode\u003eopen\u003c/code\u003e argument is a file descriptor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27643\"\u003e#27643\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eInvalidInstruction\u003c/code\u003e on Windows CPUs that do not support \u003ccode\u003ePOPCNT\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27803\"\u003e#27803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Emit semantic syntax errors in string type definitions as \u003ccode\u003eF722\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27835\"\u003e#27835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow \u003ccode\u003eos._exit\u003c/code\u003e imports in \u003ccode\u003eimport-private-name\u003c/code\u003e (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27738\"\u003e#27738\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/9e4938c4a60bed3e87a11ee1e1db1bd23f4d964a\"\u003e\u003ccode\u003e9e4938c\u003c/code\u003e\u003c/a\u003e Bump 0.16.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28110\"\u003e#28110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aad0e909ef1390f4b2a3ba8aa0a67fb8ea5cbacd\"\u003e\u003ccode\u003eaad0e90\u003c/code\u003e\u003c/a\u003e Allow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5fdab73c5052350400c36b08c5d7710210343bc4\"\u003e\u003ccode\u003e5fdab7...\n\n_Description has been truncated_","html_url":"https://github.com/bbvch-ai/aihub-core/pull/1893","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbvch-ai%2Faihub-core/issues/1893","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1893/packages"},{"uuid":"5457133221","node_id":"PR_kwDOMkdPVc8AAAABDi7FLA","number":1002,"state":"open","title":"Bump the minor-and-patch-updates group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T03:29:23.000Z","updated_at":"2026-09-15T03:37:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch-updates","update_count":9,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"faker","old_version":"40.36.0","new_version":"40.38.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"pytest-rerunfailures","old_version":"16.6","new_version":"16.6.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinxcontrib-mermaid","old_version":"2.1.0","new_version":"2.1.1","repository_url":"https://github.com/mgaitan/sphinxcontrib-mermaid"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch-updates group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.3` |\n| [faker](https://github.com/joke2k/faker) | `40.36.0` | `40.38.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.6` | `16.6.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [sphinxcontrib-mermaid](https://github.com/mgaitan/sphinxcontrib-mermaid) | `2.1.0` | `2.1.1` |\n\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.1.1 to 6.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.3 (2026-09-02)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2165901: External parameter entity parsing was allowed by default\n(with \u003ccode\u003eresolve_entities=\u0026quot;internal\u0026quot;\u003c/code\u003e).\nIssue found by Tomer Fichman.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.1.2 (2026-08-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#526: Some build files were missing in the sdist.\nPatch by Nicola Soranzo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome minor corrections for error handling cases.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt with Cython 3.2.9.\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/lxml/lxml/commit/3c1a4c7f2d5a3c19efe01adfd3c33ac3c8fe52c1\"\u003e\u003ccode\u003e3c1a4c7\u003c/code\u003e\u003c/a\u003e Prepare release of 6.1.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/c1191fc55b8d574544203d07e7a02ba3378ced8d\"\u003e\u003ccode\u003ec1191fc\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/03ec3123b9683e7f02ce659f34322667683d3eef\"\u003e\u003ccode\u003e03ec312\u003c/code\u003e\u003c/a\u003e Disable parameter entity parsing when internal-only entity parsing is requested.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/11d03e922e0a7845131df3ab2fb5e894c0ced0ab\"\u003e\u003ccode\u003e11d03e9\u003c/code\u003e\u003c/a\u003e Build: Prevent duplicate Py3.8 wheel builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9efc586ed3555be22548a3188f7f435826834961\"\u003e\u003ccode\u003e9efc586\u003c/code\u003e\u003c/a\u003e Build: Exclude musllinux-ARM from Py3.8 wheel building to prevent slow emulat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9716fb1e1a80db4ba5e36bf99947dfccd8730471\"\u003e\u003ccode\u003e9716fb1\u003c/code\u003e\u003c/a\u003e Build: Include older PyPy versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/0f3327d3c8fc1ba01c90a866770ad8c4889e537f\"\u003e\u003ccode\u003e0f3327d\u003c/code\u003e\u003c/a\u003e Build: Exclude Win-Aarch64 from wheel build.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6967c960976541979570099de9866af398fb292f\"\u003e\u003ccode\u003e6967c96\u003c/code\u003e\u003c/a\u003e Build: Make all built wheels downloadable even if they don't pass the release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/061218d210747a1181dea76fb6b6d0eebe946b2d\"\u003e\u003ccode\u003e061218d\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.15 i686 wheels from validation (because they are intention...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ce9fe0dd26bd5b64fe03b6bcdf68a997ee5a2596\"\u003e\u003ccode\u003ece9fe0d\u003c/code\u003e\u003c/a\u003e Build: Fix Py3.8 windows build.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.1.1...lxml-6.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.7.19 to 2026.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.9.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#615](https://github.com/mrabarnett/mrab-regex/issues/615): Fix Python API error propagation in match helpers\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/616\"\u003e#616\u003c/a\u003e: Preserve Python Exceptions in Input Decoding and String Detachment\u003c/p\u003e\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/617\"\u003e#617\u003c/a\u003e: Prevent Invalid Pointer Use and Exception State Corruption in Byte String Joining\u003c/p\u003e\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/618\"\u003e#618\u003c/a\u003e: Propagate Allocation and Internal Errors During Pattern Compilation and Scanner Execution\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.9.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer supports building for free-threaded Python 3.13.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer needs nor supports cpython-freethreading option.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated cibuildwheel.\nSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 611: Heap out-of-bounds write at compile time\nGit issue 612: count_one() size underflow through the stale required-string cache\nGit issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\nGit issue 614: build_GROUP() does not propagate the match direction\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.12\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 607: SIGSEGV: NULL pointer dereference in `basic_match()` when `(?R)`/`(?0)` recursion is used inside a fuzzy-matching quantifier\nGit issue 608: SIGSEGV: out-of-bounds read in `bytes1_char_at()` with `DOTALL` + a fuzzy constraint + `(?r)` reverse-direction matching\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eClarified that the POSIX flag makes it look for only the longest overall match.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/57f366fdbd9b8346d3b1a95b99cd81a9e91db367\"\u003e\u003ccode\u003e57f366f\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer supports building for free-threaded Pyt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/a1d72bace2f7222e310b32c595771686a59d0388\"\u003e\u003ccode\u003ea1d72ba\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer needs nor supports cpython-freethreadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/c8d0aa48f52feb6512c3a3ac6e02f4c7ec6363e0\"\u003e\u003ccode\u003ec8d0aa4\u003c/code\u003e\u003c/a\u003e Updated cibuildwheel. Support Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b283bb2b038cef571bfe49b2a76415cf4005ddfc\"\u003e\u003ccode\u003eb283bb2\u003c/code\u003e\u003c/a\u003e Updated version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5268ae7bd178828d6b710125a8089e548ca51b61\"\u003e\u003ccode\u003e5268ae7\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/9398a6da5630aa9af67775e95802d2c5625606cd\"\u003e\u003ccode\u003e9398a6d\u003c/code\u003e\u003c/a\u003e Git issue 614: build_GROUP() does not propagate the match direction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b77694aec629ca66bfe416e5f83561d52bd08ae8\"\u003e\u003ccode\u003eb77694a\u003c/code\u003e\u003c/a\u003e Git issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/8244055e30dbfe4aa96ebff39ad78fabbcdf93a7\"\u003e\u003ccode\u003e8244055\u003c/code\u003e\u003c/a\u003e Git issue 612: count_one() size underflow through the stale required-string c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1c90270fb50c542a24d16c4848fc2b7b951bbd2d\"\u003e\u003ccode\u003e1c90270\u003c/code\u003e\u003c/a\u003e Git issue 611: Heap out-of-bounds write at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1760a20647f1c2ddcc025128407fe6f7edb905a1\"\u003e\u003ccode\u003e1760a20\u003c/code\u003e\u003c/a\u003e Support Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.7.19...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.36.0 to 40.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v40.38.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.38.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.37.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.37.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.37.0...v40.38.0\"\u003ev40.38.0 - 2026-09-01\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esi_LK\u003c/code\u003e (Sinhala, Sri Lanka) person provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2430\"\u003e#2430\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/RavinduPabasara\"\u003e\u003ccode\u003e@​RavinduPabasara\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ev40.37.0 - 2026-08-20\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix: generate structurally valid Irish IBANs for \u003ccode\u003een_IE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/CedricConday\"\u003e\u003ccode\u003e@​CedricConday\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/suliuzh\"\u003e\u003ccode\u003e@​suliuzh\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/59a6872a547248bb40cdd0f809089a605c68467f\"\u003e\u003ccode\u003e59a6872\u003c/code\u003e\u003c/a\u003e Bump version: 40.37.0 → 40.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2407c71270aa0fc1b3e7510e1872dc2d232dc238\"\u003e\u003ccode\u003e2407c71\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f6a8427a6481f81d1d45701338acde38c63e75ad\"\u003e\u003ccode\u003ef6a8427\u003c/code\u003e\u003c/a\u003e :lipstick: Format code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/ce50bdef4bdc5f04e25d012566b14faf5fb2ec22\"\u003e\u003ccode\u003ece50bde\u003c/code\u003e\u003c/a\u003e Add step to check for existing issues or PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4ca9116ec2f9c86bc311aadd0110d3f976bb49a8\"\u003e\u003ccode\u003e4ca9116\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esi_LK\u003c/code\u003e (Sinhala, Sri Lanka) person provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2430\"\u003e#2430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/c5a00935f1eff78bf0258c8a45fb431747c46b48\"\u003e\u003ccode\u003ec5a0093\u003c/code\u003e\u003c/a\u003e mention pull request template in contributing doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4a464c8d7130e26b4c0e9749b039d10b5614c45e\"\u003e\u003ccode\u003e4a464c8\u003c/code\u003e\u003c/a\u003e Bump version: 40.36.0 → 40.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f33e820a5237384c43718f2ec0bf60d82014db12\"\u003e\u003ccode\u003ef33e820\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/74efb07c529e826c3aa12508b204b80b180eba1f\"\u003e\u003ccode\u003e74efb07\u003c/code\u003e\u003c/a\u003e fix(en_IE): generate structurally valid Irish IBANs (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d80d125d5c20d0572a26d5d617dbad647beb9343\"\u003e\u003ccode\u003ed80d125\u003c/code\u003e\u003c/a\u003e add Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/releases\"\u003epytest-benchmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e: instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/318\"\u003eionelmc/pytest-benchmark#318\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded compare \u003ccode\u003e--between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/302\"\u003eionelmc/pytest-benchmark#302\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/304\"\u003eionelmc/pytest-benchmark#304\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/306\"\u003eionelmc/pytest-benchmark#306\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/319\"\u003eionelmc/pytest-benchmark#319\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected. Contributed by xlyyddy in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/317\"\u003eionelmc/pytest-benchmark#317\u003c/a\u003e (fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003eionelmc/pytest-benchmark#65\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003eargparse.FileType\u003c/code\u003e. Contributed by Sophia Castellarin in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/310\"\u003eionelmc/pytest-benchmark#310\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos. Contributed by Daniel Holth and Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/297\"\u003eionelmc/pytest-benchmark#297\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/299\"\u003eionelmc/pytest-benchmark#299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code. Contributed by Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/300\"\u003eionelmc/pytest-benchmark#300\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/301\"\u003eionelmc/pytest-benchmark#301\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 (2026-08-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e:\ninstead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction.\nContributed by Aarni Koskela in \u003ccode\u003e[#318](https://github.com/ionelmc/pytest-benchmark/issues/318) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/318\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompare --between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e.\nContributed by Aarni Koskela in \u003ccode\u003e[#302](https://github.com/ionelmc/pytest-benchmark/issues/302) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/302\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking.\nContributed by Aarni Koskela in\n\u003ccode\u003e[#304](https://github.com/ionelmc/pytest-benchmark/issues/304) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/304\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#306](https://github.com/ionelmc/pytest-benchmark/issues/306) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/306\u0026gt;\u003c/code\u003e\u003c/em\u003e and\n\u003ccode\u003e[#319](https://github.com/ionelmc/pytest-benchmark/issues/319) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/319\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected.\nContributed by xlyyddy in \u003ccode\u003e[#317](https://github.com/ionelmc/pytest-benchmark/issues/317) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/317\u0026gt;\u003c/code\u003e_\n(fixes \u003ccode\u003e[#65](https://github.com/ionelmc/pytest-benchmark/issues/65) \u0026lt;https://github.com/ionelmc/pytest-benchmark/issues/65\u0026gt;\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated argparse.FileType.\nContributed by Sophia Castellarin in \u003ccode\u003e[#310](https://github.com/ionelmc/pytest-benchmark/issues/310) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/310\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos.\nContributed by Daniel Holth and Hugo van Kemenade in\n\u003ccode\u003e[#297](https://github.com/ionelmc/pytest-benchmark/issues/297) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/297\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#299](https://github.com/ionelmc/pytest-benchmark/issues/299) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/299\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code.\nContributed by Hugo van Kemenade in\n\u003ccode\u003e[#300](https://github.com/ionelmc/pytest-benchmark/issues/300) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/300\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#301](https://github.com/ionelmc/pytest-benchmark/issues/301) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/301\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/commit/07d519672687402e6c3fac1a543fbefd810d1e5b\"\u003e\u003ccode\u003e07d5196\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.3 → 5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/accf7331e22c0ede38ffa72081c38f3469e0c9b5\"\u003e\u003ccode\u003eaccf733\u003c/code\u003e\u003c/a\u003e Add some details on \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/304\"\u003e#304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/417dd9fa275e8b9d62c469e676cdb7546d2c4b8f\"\u003e\u003ccode\u003e417dd9f\u003c/code\u003e\u003c/a\u003e Really update the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/898acb34430c99ad877e94c52c8b90256a3bb4a8\"\u003e\u003ccode\u003e898acb3\u003c/code\u003e\u003c/a\u003e Update changelog and plan release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9cc7ef0bb1ad3785a46834b24660562dd48e4a0b\"\u003e\u003ccode\u003e9cc7ef0\u003c/code\u003e\u003c/a\u003e Defer xdist warning until benchmark collection (\u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003e#65\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/ef485506f04d5510831fdbdee5be7014f4726a93\"\u003e\u003ccode\u003eef48550\u003c/code\u003e\u003c/a\u003e Some minor skel updates: test only against latest pytest; bump linting/format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/88eaea957d1685f604a5835555d2ce5dbec1ac29\"\u003e\u003ccode\u003e88eaea9\u003c/code\u003e\u003c/a\u003e Add --benchmark-precision for adaptive rounds (opt-in)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/3b83d127127de74d9f71a3a78e5f661fac044950\"\u003e\u003ccode\u003e3b83d12\u003c/code\u003e\u003c/a\u003e Update and freeze GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/4b7662fbfba046eb92dd183e005e8708ac81e6cd\"\u003e\u003ccode\u003e4b7662f\u003c/code\u003e\u003c/a\u003e Fix ruff complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/26b011361d2c41f529a73833e1be8d3a565600fa\"\u003e\u003ccode\u003e26b0113\u003c/code\u003e\u003c/a\u003e Remove Taplo lint (unmaintained)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 16.6 to 16.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.6.1 (2026-09-03)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure teardown reports are passed to \u003ccode\u003epytest_runtest_logreport\u003c/code\u003e for rerun\nattempts. (\u003ccode\u003e[#237](https://github.com/pytest-dev/pytest-rerunfailures/issues/237) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/237\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePrevent superseded built-in subtest failures from remaining in the final test\nresult when rerunning tests with pytest-xdist. (\u003ccode\u003e[#350](https://github.com/pytest-dev/pytest-rerunfailures/issues/350) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/350\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eRestore module, class, and session scoped fixture teardown when a \u003ccode\u003eflaky\u003c/code\u003e\nmarker condition is falsy. (\u003ccode\u003e[#351](https://github.com/pytest-dev/pytest-rerunfailures/issues/351) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eRestore module, class, and session scoped fixture teardown when an error\nraised during teardown rules out a re-run. (\u003ccode\u003e[#356](https://github.com/pytest-dev/pytest-rerunfailures/issues/356) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/356\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eKeep module, class, and session scoped fixtures alive across re-runs of a\ntest whose call phase failed through subtests only. (\u003ccode\u003e[#357](https://github.com/pytest-dev/pytest-rerunfailures/issues/357) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/357\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAuthenticate xdist StatusDB connections with a per-session token. (\u003ccode\u003e[#358](https://github.com/pytest-dev/pytest-rerunfailures/issues/358) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/358\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eEnsure negative rerun counts do not skip the initial test execution. (\u003ccode\u003e[#359](https://github.com/pytest-dev/pytest-rerunfailures/issues/359) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/359\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003eConfig.getvalue()\u003c/code\u003e calls with \u003ccode\u003eConfig.getoption()\u003c/code\u003e.\n(\u003ccode\u003e[#345](https://github.com/pytest-dev/pytest-rerunfailures/issues/345) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/345\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/dad07a7f360e96c0cbbc4301e36cdc439eb9a36b\"\u003e\u003ccode\u003edad07a7\u003c/code\u003e\u003c/a\u003e Preparing release 16.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/968fb6c1d3982ea35f041ecb62024e79016324bb\"\u003e\u003ccode\u003e968fb6c\u003c/code\u003e\u003c/a\u003e Prevent negative reruns from skipping initial execution (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/367df9044cbcf3bbf153269bdab995e1f9eb113c\"\u003e\u003ccode\u003e367df90\u003c/code\u003e\u003c/a\u003e Keep higher-scoped fixtures alive across re-runs of failed subtests (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/69ac0a7e66f1f55c1e94a2f237e2659250795ef7\"\u003e\u003ccode\u003e69ac0a7\u003c/code\u003e\u003c/a\u003e Authenticate xdist StatusDB connections (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/20decd37b22736b1a92ecb7a6ed598e7fd70cff1\"\u003e\u003ccode\u003e20decd3\u003c/code\u003e\u003c/a\u003e Restore higher-scoped teardown when a teardown error rules out a re-run (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/84af73d63c1ac3eeeeba73a5e3ac91a44078c7bb\"\u003e\u003ccode\u003e84af73d\u003c/code\u003e\u003c/a\u003e Fix subtest rerun reporting with xdist (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d784cdda0b946c8788939255b6b72df67da82a19\"\u003e\u003ccode\u003ed784cdd\u003c/code\u003e\u003c/a\u003e Test with pytest-xdist on CI (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9f85e063dac5387cb0b17ffcb8aadeca545292a8\"\u003e\u003ccode\u003e9f85e06\u003c/code\u003e\u003c/a\u003e Restore higher-scoped teardown when a flaky condition is falsy (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/eab650fb2a2665d61539aafda81ae549440c2834\"\u003e\u003ccode\u003eeab650f\u003c/code\u003e\u003c/a\u003e Test rerun-except for setup errors (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/0b0843a83fb7e79c37e626092a77c5f7cd49f4df\"\u003e\u003ccode\u003e0b0843a\u003c/code\u003e\u003c/a\u003e Fix only_rerun marker precedence test (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6...16.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.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.16.3 to 0.16.6\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.16.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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.16.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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/22f65a2ab5052990503985c7c794de37598d531e\"\u003e\u003ccode\u003e22f65a2\u003c/code\u003e\u003c/a\u003e Bump 0.16.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28280\"\u003e#28280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd\"\u003e\u003ccode\u003e7cc9f1e\u003c/code\u003e\u003c/a\u003e [ty] Document \u003ccode\u003eCallableTypeKind\u003c/code\u003e variants (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28277\"\u003e#28277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078\"\u003e\u003ccode\u003e056ce07\u003c/code\u003e\u003c/a\u003e Add UV_LOCKED to all workflows (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28261\"\u003e#28261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6\"\u003e\u003ccode\u003e6d6e35d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a\"\u003e\u003ccode\u003e80b4891\u003c/code\u003e\u003c/a\u003e [ty] Temporarily disable tuple types in property tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28275\"\u003e#28275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0\"\u003e\u003ccode\u003e3f7a54d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d\"\u003e\u003ccode\u003e35656cf\u003c/code\u003e\u003c/a\u003e [ty] Preserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf\"\u003e\u003ccode\u003ed2626c8\u003c/code\u003e\u003c/a\u003e [ty] Reject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c\"\u003e\u003ccode\u003eee6a6d1\u003c/code\u003e\u003c/a\u003e [ty] Support ParamSpecs in \u003ccode\u003eConstraintSet\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28028\"\u003e#28028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d\"\u003e\u003ccode\u003e7f6a170\u003c/code\u003e\u003c/a\u003e [ty] Move bound APIs to constraint owners (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28094\"\u003e#28094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.3...0.16.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinxcontrib-mermaid` from 2.1.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/blob/master/CHANGELOG.md\"\u003esphinxcontrib-mermaid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.1 (July 19, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve source metadata on generated Mermaid caption nodes so Sphinx extracts them into gettext catalogs and applies normal caption translations\u003c/li\u003e\n\u003cli\u003ePass the existing mermaid image class through the HTML visitor so PNG output can be targeted consistently with CSS\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/mgaitan/sphinxcontrib-mermaid/commit/6e51230b4781f578efdc54af5bae0952e1627c53\"\u003e\u003ccode\u003e6e51230\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/262\"\u003e#262\u003c/a\u003e from mgaitan/tkp/211\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/7c61bb6ee312d0233bb422c082ed7355013a7925\"\u003e\u003ccode\u003e7c61bb6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/264\"\u003e#264\u003c/a\u003e from mgaitan/dependabot/github_actions/github-actions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/77bd5937e93169925187c74e85fe5658fe27f5e6\"\u003e\u003ccode\u003e77bd593\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dependabot/github_actions/github-actions-a934d7c76e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/d1b8ca8baee3464cd2d626d22fb8860811100fc9\"\u003e\u003ccode\u003ed1b8ca8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/265\"\u003e#265\u003c/a\u003e from mgaitan/tkp/ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/4ad2812dcb7b65229df1438974bed2b8f45eb968\"\u003e\u003ccode\u003e4ad2812\u003c/code\u003e\u003c/a\u003e Fixes for ruff 16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/056261dbfbc38c3405a22418aec0205bde1b09ea\"\u003e\u003ccode\u003e056261d\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/015f47a3ea392d324a0a99e82727a31f8bc7ecb7\"\u003e\u003ccode\u003e015f47a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/263\"\u003e#263\u003c/a\u003e from mgaitan/dependabot/github_actions/github-actions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/a8f8b59780c988e7a4a420543b6d764e0167e8a2\"\u003e\u003ccode\u003ea8f8b59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/e81147ddb1c7b5a7888ed74728c887f226d440ef\"\u003e\u003ccode\u003ee81147d\u003c/code\u003e\u003c/a\u003e Bump to 2.1.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/e26789082fa6e95552957af5fe64c4cf327372be\"\u003e\u003ccode\u003ee267890\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/261\"\u003e#261\u003c/a\u003e from timkpaine/tkp/translate-mermaid-captions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/compare/2.1.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/1002","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/1002","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1002/packages"},{"uuid":"5455445056","node_id":"PR_kwDOSdqTH88AAAABDhmZbg","number":329,"state":"open","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":11,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T22:58:02.000Z","updated_at":"2026-09-14T22:58:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/SaifulHaqueNiloy/supremeai/pull/329","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaifulHaqueNiloy%2Fsupremeai/issues/329","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/329/packages"},{"uuid":"5453252554","node_id":"PR_kwDOPjFrIs8AAAABDf1RmA","number":5059,"state":"open","title":"chore(deps): bump cachetools from 5.5.2 to 7.1.8","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T18:47:04.000Z","updated_at":"2026-09-14T18:55:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"5.5.2","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 5.5.2 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v7.1.8\"\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=cachetools\u0026package-manager=uv\u0026previous-version=5.5.2\u0026new-version=7.1.8)](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/OpenHands/software-agent-sdk/pull/5059","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenHands%2Fsoftware-agent-sdk/issues/5059","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5059/packages"},{"uuid":"5451958211","node_id":"PR_kwDOT7cHYc8AAAABDeyR7Q","number":7,"state":"closed","title":"deps: bump the python-dependencies group with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T16:30:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T16:30:32.000Z","updated_at":"2026-09-14T16:30:53.000Z","time_to_close":12,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-dependencies","update_count":26,"packages":[{"name":"streamlit","old_version":"1.62.0","new_version":"1.63.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"llama-index-llms-ollama","old_version":"0.10.1","new_version":"0.11.0"},{"name":"llama-index-embeddings-huggingface","old_version":"0.7.0","new_version":"0.8.0"},{"name":"llama-index-readers-web","old_version":"0.6.0","new_version":"0.7.0"},{"name":"llama-index-readers-file","old_version":"0.6.0","new_version":"0.7.0"},{"name":"torch","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.28.0","new_version":"0.29.0","repository_url":"https://github.com/pytorch/vision"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cuda-pathfinder","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"firecrawl-py","old_version":"4.40.0","new_version":"4.41.0","repository_url":"https://github.com/firecrawl/firecrawl"},{"name":"gitpython","old_version":"3.1.61","new_version":"3.1.62","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"griffecli","old_version":"2.2.0","new_version":"2.3.0"},{"name":"griffelib","old_version":"2.2.0","new_version":"2.3.0"},{"name":"huggingface-hub","old_version":"1.29.0","new_version":"1.30.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"llama-index-llms-openai","old_version":"0.8.0","new_version":"0.8.1"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"numpy","old_version":"2.5.2","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"openai","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/openai/openai-python"},{"name":"platformdirs","old_version":"4.11.5","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.16.2","new_version":"6.17.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"tokenizers","old_version":"0.23.1","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.62.0` | `1.63.0` |\n| llama-index-llms-ollama | `0.10.1` | `0.11.0` |\n| llama-index-embeddings-huggingface | `0.7.0` | `0.8.0` |\n| llama-index-readers-web | `0.6.0` | `0.7.0` |\n| llama-index-readers-file | `0.6.0` | `0.7.0` |\n| [torch](https://github.com/pytorch/pytorch) | `2.13.0` | `2.14.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.28.0` | `0.29.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.8.0` | `1.8.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.5` |\n| [firecrawl-py](https://github.com/firecrawl/firecrawl) | `4.40.0` | `4.41.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.61` | `3.1.62` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.2.0` | `2.3.0` |\n| griffecli | `2.2.0` | `2.3.0` |\n| griffelib | `2.2.0` | `2.3.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.29.0` | `1.30.0` |\n| llama-index-llms-openai | `0.8.0` | `0.8.1` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [numpy](https://github.com/numpy/numpy) | `2.5.2` | `2.5.3` |\n| [openai](https://github.com/openai/openai-python) | `3.6.0` | `3.8.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.5` | `4.11.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.16.2` | `6.17.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.3` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.23.1` | `0.23.2` |\n\nUpdates `streamlit` from 1.62.0 to 1.63.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/streamlit/streamlit/releases\"\u003estreamlit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.63.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003ewrap\u003c/code\u003e to \u003ccode\u003est.pills\u003c/code\u003e and \u003ccode\u003est.segmented_control\u003c/code\u003e by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16369\"\u003estreamlit/streamlit#16369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.slider by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/14828\"\u003estreamlit/streamlit#14828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Auto no-wrap for direct column widgets by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16578\"\u003estreamlit/streamlit#16578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003etype=\u0026quot;step\u0026quot;\u003c/code\u003e to \u003ccode\u003est.expander\u003c/code\u003e and \u003ccode\u003est.status\u003c/code\u003e by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16558\"\u003estreamlit/streamlit#16558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Make st.rerun() work in widget callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16158\"\u003estreamlit/streamlit#16158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.text_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16605\"\u003estreamlit/streamlit#16605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Configurable cache background-refresh TTL multiplier by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16599\"\u003estreamlit/streamlit#16599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add select_all and first-row Enter to st.multiselect by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16673\"\u003estreamlit/streamlit#16673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add wrap parameter to text commands by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16617\"\u003estreamlit/streamlit#16617\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add icon parameter to title, header, subheader by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16418\"\u003estreamlit/streamlit#16418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add event-scoped fragment reruns via st.rerun(scope=\u003c!-- raw HTML omitted --\u003e) by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16161\"\u003estreamlit/streamlit#16161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Skip syntax highlighting for very long code blocks (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/11996\"\u003e#11996\u003c/a\u003e) by \u003ca href=\"https://github.com/sfc-gh-dbyttow\"\u003e\u003ccode\u003e@​sfc-gh-dbyttow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16567\"\u003estreamlit/streamlit#16567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep menu and JSON overlays clickable in \u003ccode\u003est.dialog\u003c/code\u003e by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16583\"\u003estreamlit/streamlit#16583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Clamp date/datetime input default bounds at date.min/max by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16582\"\u003estreamlit/streamlit#16582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Match skills-nudge button labels to the card's text size by \u003ca href=\"https://github.com/sfc-gh-nbellante\"\u003e\u003ccode\u003e@​sfc-gh-nbellante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16482\"\u003estreamlit/streamlit#16482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stop Cmd/Ctrl+C from opening clear-cache dialog by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16615\"\u003estreamlit/streamlit#16615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent markdown lists from overflowing narrow containers by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16632\"\u003estreamlit/streamlit#16632\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Echo guest-to-host messages to in-iframe hosts by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16647\"\u003estreamlit/streamlit#16647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Restore Ctrl/Cmd+A in st.multiselect filter by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16650\"\u003estreamlit/streamlit#16650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Correct public widget overload typings by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16633\"\u003estreamlit/streamlit#16633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Error message bullets and uppercase-hex object reprs by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16683\"\u003estreamlit/streamlit#16683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Show the correct year in the date picker header by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16706\"\u003estreamlit/streamlit#16706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Harden AppTest for keys, disabled widgets, and navigation by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16711\"\u003estreamlit/streamlit#16711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Log all user-facing warnings to the console by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16717\"\u003estreamlit/streamlit#16717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent upload hang when middleware reads the body first by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16709\"\u003estreamlit/streamlit#16709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep a time given before a date in st.datetime_input by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16664\"\u003estreamlit/streamlit#16664\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release v1.62.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16579\"\u003estreamlit/streamlit#16579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Recommend st.table for key-value lists by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16576\"\u003estreamlit/streamlit#16576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify UploadedFile public API by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16604\"\u003estreamlit/streamlit#16604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep spinner moving and expose its label by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16620\"\u003estreamlit/streamlit#16620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Add typed API exceptions for telemetry by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16637\"\u003estreamlit/streamlit#16637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Add missing-required parameter error by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16508\"\u003estreamlit/streamlit#16508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Recommend icons for navigation pages by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16658\"\u003estreamlit/streamlit#16658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Adopt shared parameter exception types by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16668\"\u003estreamlit/streamlit#16668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Finish public API exception cleanup by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16656\"\u003estreamlit/streamlit#16656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Adopt specific Streamlit API errors by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16690\"\u003estreamlit/streamlit#16690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Split range errors into min/max vs interval by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16701\"\u003estreamlit/streamlit#16701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Improve \u003ccode\u003est.context\u003c/code\u003e and \u003ccode\u003est.user\u003c/code\u003e typing by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16710\"\u003estreamlit/streamlit#16710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Migrate leftover st.* exception types by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16707\"\u003estreamlit/streamlit#16707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Document that st.rerun() works in widget callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16751\"\u003estreamlit/streamlit#16751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update agent skill for keyed fragment reruns by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16750\"\u003estreamlit/streamlit#16750\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/streamlit/streamlit/commit/cb9aba9ff4d89c496ed15fd1aa7ee1fef19e0c24\"\u003e\u003ccode\u003ecb9aba9\u003c/code\u003e\u003c/a\u003e Up version to 1.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/158822cc3c70ba2ea6460f45cfd68d7e967efafa\"\u003e\u003ccode\u003e158822c\u003c/code\u003e\u003c/a\u003e [fix] Keep a time given before a date in st.datetime_input (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16664\"\u003e#16664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a0394068b6230c821ae93c5790d688f83da69154\"\u003e\u003ccode\u003ea039406\u003c/code\u003e\u003c/a\u003e [fix] Prevent upload hang when middleware reads the body first (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16709\"\u003e#16709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/913f77c7ceedcde6b2433e1640db54d1d64cdd23\"\u003e\u003ccode\u003e913f77c\u003c/code\u003e\u003c/a\u003e [docs] Update agent skill for keyed fragment reruns (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16750\"\u003e#16750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/1614093b2f14f27a1f5803eb981ba2271b96db2e\"\u003e\u003ccode\u003e1614093\u003c/code\u003e\u003c/a\u003e [docs] Document that st.rerun() works in widget callbacks (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16751\"\u003e#16751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/d330f5810cd31563972e9c6d4c1ed33e1b46ea2f\"\u003e\u003ccode\u003ed330f58\u003c/code\u003e\u003c/a\u003e [fix] Log all user-facing warnings to the console (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16717\"\u003e#16717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a1bdd67b4eb197cffee50d20cecec03989a3922b\"\u003e\u003ccode\u003ea1bdd67\u003c/code\u003e\u003c/a\u003e [feature] Add event-scoped fragment reruns via st.rerun(scope=\u0026lt;key\u0026gt;) (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16161\"\u003e#16161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/da485ea43af37f47af10fa98a08b672599fa7b4a\"\u003e\u003ccode\u003eda485ea\u003c/code\u003e\u003c/a\u003e [chore] Fix click, uvloop, knip, and teardown test warnings (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16735\"\u003e#16735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/c714cfebab1e574e3017e15eb22e18e9cbe5d3dc\"\u003e\u003ccode\u003ec714cfe\u003c/code\u003e\u003c/a\u003e [chore] Add papercut auto-select and final AI review (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16731\"\u003e#16731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/976187ba59deb8002bf8c6045e9a9cb41f43128c\"\u003e\u003ccode\u003e976187b\u003c/code\u003e\u003c/a\u003e [chore] Pin patched frontend security dependencies (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16748\"\u003e#16748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/streamlit/streamlit/compare/1.62.0...1.63.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `llama-index-llms-ollama` from 0.10.1 to 0.11.0\n\nUpdates `llama-index-embeddings-huggingface` from 0.7.0 to 0.8.0\n\nUpdates `llama-index-readers-web` from 0.6.0 to 0.7.0\n\nUpdates `llama-index-readers-file` from 0.6.0 to 0.7.0\n\nUpdates `torch` from 2.13.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.14.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etorch.nn.LinearCrossEntropyOptions\u003c/code\u003e no longer accepts \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e; use \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/188283\"\u003e#188283\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e\u0026quot;balanced\u0026quot;\u003c/code\u003e policy was removed because \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e provides the same weight-gradient accumulation precision with lower memory use on CUDA, already uses the equivalent scratch layout for mixed-precision inputs on other devices, and was never selected by \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e. Constructing the options with \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e now raises \u003ccode\u003eValueError: invalid acc_policy: 'balanced'; expected one of 'auto', 'accurate', 'compact'\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eoptions = torch.nn.LinearCrossEntropyOptions(acc_policy=\u0026quot;balanced\u0026quot;)\r\nloss = torch.nn.functional.linear_cross_entropy(\r\n    input, linear_weight, target, options=options\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eoptions = torch.nn.LinearCrossEntropyOptions(acc_policy=\u0026quot;compact\u0026quot;)\r\nloss = torch.nn.functional.linear_cross_entropy(\r\n\u003c/code\u003e\u003c/pre\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/pytorch/pytorch/commit/2b3ec34829036a65cd9d1398ea72a0167dc37470\"\u003e\u003ccode\u003e2b3ec34\u003c/code\u003e\u003c/a\u003e [release/2.14] Import SDPAParams in test_transformers to fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194970\"\u003e#194970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/08187d9e0fba026dc8217405802ab5381dc88d90\"\u003e\u003ccode\u003e08187d9\u003c/code\u003e\u003c/a\u003e [cuDNN] Add guards for cuDNN SDPA decode (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194963\"\u003e#194963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/8ceea97051dec8f6bee23d24bd7704dcb6843ade\"\u003e\u003ccode\u003e8ceea97\u003c/code\u003e\u003c/a\u003e Pin cython \u0026lt; 3.3.0 for the Windows Triton wheel build (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194931\"\u003e#194931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99ecebc63014f3454331b5a0914871daa063b512\"\u003e\u003ccode\u003e99ecebc\u003c/code\u003e\u003c/a\u003e [Cherry-pick][release/2.14] [inductor] Fix loop-local load CSE lifetime (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194\"\u003e#194\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/ec283a75077fa3ee24a9cda2c58d2b24d95ca98c\"\u003e\u003ccode\u003eec283a7\u003c/code\u003e\u003c/a\u003e Bump the Python 3.15 numpy pin to 2.5.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194821\"\u003e#194821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/65890f364dd059ca97b9a37ada974eba8d8be772\"\u003e\u003ccode\u003e65890f3\u003c/code\u003e\u003c/a\u003e Fix docker-release validate job to use the channel matching the pushed image ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/168238882db0ad985f8904489604ff4955449fd2\"\u003e\u003ccode\u003e1682388\u003c/code\u003e\u003c/a\u003e Fix macOS py3.15 wheel builds: pin Cython \u0026lt; 3.3.0 and bump the cp315 numpy pi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/972441861b1aee44141b60c98c7875e7e4fe23ca\"\u003e\u003ccode\u003e9724418\u003c/code\u003e\u003c/a\u003e Fix Windows py3.15 builds: constrain Cython \u0026lt; 3.3.0 and bump the cp315 numpy ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f1b755434c258b61307de00f680bb2dc9c50d592\"\u003e\u003ccode\u003ef1b7554\u003c/code\u003e\u003c/a\u003e [MPS] Fix pin_memory() recycling buffers still in use by the GPU (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194662\"\u003e#194662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9f205f7b38c08544132b001948ce9109c577c6ed\"\u003e\u003ccode\u003e9f205f7\u003c/code\u003e\u003c/a\u003e [MPS] fail loudly on large reductions (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194661\"\u003e#194661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.13.0...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torchvision` from 0.28.0 to 0.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/vision/releases\"\u003etorchvision's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTorchVision 0.29: ABI stability!\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.pytorch.org/vision/0.29/\"\u003eTorchVision 0.29\u003c/a\u003e is out! It comes with two major changes: \u003cstrong\u003eABI stability\u003c/strong\u003e, and \u003cstrong\u003edeprecation of the image decoders and encoders\u003c/strong\u003e (now in \u003ca href=\"https://meta-pytorch.org/torchcodec/0.16/generated_examples/migration/torchvision_migration.html\"\u003eTorchCodec\u003c/a\u003e)!\u003c/p\u003e\n\u003ch2\u003eABI Stability with torch 2.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eTorchVision is now ABI stable w.r.t. \u003ccode\u003etorch 2.14\u003c/code\u003e\u003c/strong\u003e! This means that \u003ccode\u003etorchvision 0.29\u003c/code\u003e will be compatible with future versions of \u003ccode\u003etorch\u003c/code\u003e: \u003ccode\u003e2.15\u003c/code\u003e, \u003ccode\u003e2.16\u003c/code\u003e, etc. You won’t need to install a new version of TorchVision when you upgrade torch.\u003c/p\u003e\n\u003cp\u003eAs a result, we might stop releasing TorchVision in sync with pytorch. But \u003cstrong\u003eTorchVision is still actively maintained and developed\u003c/strong\u003e: we’ll still be pushing releases, just not with the same cadence.\u003c/p\u003e\n\u003cp\u003eThanks to Adrian Abeyta \u003ca href=\"https://github.com/adabeyta\"\u003e\u003ccode\u003e@​adabeyta\u003c/code\u003e\u003c/a\u003e for the fantastic porting effort!\u003c/p\u003e\n\u003cp\u003ePRs: \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9524\"\u003e#9524\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9597\"\u003e#9597\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9598\"\u003e#9598\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9605\"\u003e#9605\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9612\"\u003e#9612\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9610\"\u003e#9610\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9614\"\u003e#9614\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9584\"\u003e#9584\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9617\"\u003e#9617\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9618\"\u003e#9618\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9619\"\u003e#9619\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9620\"\u003e#9620\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9582\"\u003e#9582\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9573\"\u003e#9573\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9625\"\u003e#9625\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9623\"\u003e#9623\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9626\"\u003e#9626\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9583\"\u003e#9583\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9633\"\u003e#9633\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9572\"\u003e#9572\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9549\"\u003e#9549\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9533\"\u003e#9533\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9535\"\u003e#9535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9539\"\u003e#9539\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9543\"\u003e#9543\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9550\"\u003e#9550\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9552\"\u003e#9552\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9555\"\u003e#9555\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9557\"\u003e#9557\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9558\"\u003e#9558\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9554\"\u003e#9554\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImage decoders and encoders are deprecated. Use TorchCodec!\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe image decoders and encoders in \u003ccode\u003etorchvision.io\u003c/code\u003e are now deprecated, and they will be removed in a future release\u003c/strong\u003e. They are now available in \u003ca href=\"https://github.com/meta-pytorch/torchcodec/releases/tag/v0.16.0\"\u003etorchcodec \u0026gt;= 0.16\u003c/a\u003e, where they are significantly more capable. You’ll just need to \u003ccode\u003epip install torchcodec\u003c/code\u003e, and you can refer to \u003ca href=\"https://meta-pytorch.org/torchcodec/0.16/generated_examples/migration/torchvision_migration.html\"\u003ethis migration guide\u003c/a\u003e for migrating your code (most APIs for decoding are the same).\u003c/p\u003e\n\u003cp\u003eThis finalizes a clear separation of concerns for the three media-processing libraries of PyTorch: \u003ccode\u003etorchcodec\u003c/code\u003e is for decoding and encoding all media (images, videos, and audio), while \u003ccode\u003etorchvision\u003c/code\u003e and \u003ccode\u003etorchaudio\u003c/code\u003e focus on the transforms.\u003c/p\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cp\u003e[ops] Fix for deformable convolution kernels always running on default stream (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9522\"\u003e#9522\u003c/a\u003e)\n[ops, MPS] Fix gradient overaccumulation in ROI ops (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9563\"\u003e#9563\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9510\"\u003e#9510\u003c/a\u003e)\n[transforms] Fix JPEG transform for non-contiguous batches (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9615\"\u003e#9615\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003e🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:\u003c/p\u003e\n\u003cp\u003eAdrian Abeyta, Andrey Talman, Dmitry Nikolaev, Irakli Salia, Jeff Daily , Kasra  Ghodsi, Nicolas Hug,  Nikita Shulga, Simon Byrne, Yutao Xu, Zhewen\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/pytorch/vision/commit/fc73f5a8567734ffa4c988b24d5432f0d3005974\"\u003e\u003ccode\u003efc73f5a\u003c/code\u003e\u003c/a\u003e Merge branch 'release/0.29' of github.com:pytorch/vision into release/0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/f9b26692ed7f8da7b7d756be50f4ce2ec214a4ac\"\u003e\u003ccode\u003ef9b2669\u003c/code\u003e\u003c/a\u003e [Cherry-pick for 0.29] (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9634\"\u003e#9634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/e1b580264441968d3a827803f2eccd130a4d1c55\"\u003e\u003ccode\u003ee1b5802\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Update version.txt for 0.30.0 (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9607\"\u003e#9607\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/2757376cec0343e85b4f22f154a40e9e5e92a3c2\"\u003e\u003ccode\u003e2757376\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin' into release/0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/9e21b8873fb702621db31ef59276e5f436222f7f\"\u003e\u003ccode\u003e9e21b88\u003c/code\u003e\u003c/a\u003e Consolidate CUDA helpers and remove the legacy _C extension in place of Stabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/541c08303e9bbc9524bbd60108775612d3af6112\"\u003e\u003ccode\u003e541c083\u003c/code\u003e\u003c/a\u003e Port deform_conv2d (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9626\"\u003e#9626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/2f411e7fccdafd0290e07d3bb71e30962577bbf4\"\u003e\u003ccode\u003e2f411e7\u003c/code\u003e\u003c/a\u003e Port ps_roi_pool (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9623\"\u003e#9623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/ae0ca92357c49bea33d5b57ac235eb8b58d53d00\"\u003e\u003ccode\u003eae0ca92\u003c/code\u003e\u003c/a\u003e Port ps_roi_align (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9625\"\u003e#9625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/ff1a18ddd7d790d47d12e79695cae1cc91176620\"\u003e\u003ccode\u003eff1a18d\u003c/code\u003e\u003c/a\u003e Port roi_align (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9573\"\u003e#9573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/8af7a682bb5baa8aea2381f78450556399ff58bf\"\u003e\u003ccode\u003e8af7a68\u003c/code\u003e\u003c/a\u003e Port roi_pool (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9582\"\u003e#9582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/vision/compare/v0.28.0...v0.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.14.2 to 4.15.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.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.2...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cuda-pathfinder` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/NVIDIA/cuda-python/releases\"\u003ecuda-pathfinder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecuda-pathfinder v1.8.1\u003c/h2\u003e\n\u003ch2\u003eRelease notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nvidia.github.io/cuda-python/cuda-pathfinder/latest/release/1.8.1-notes.html\"\u003ehttps://nvidia.github.io/cuda-python/cuda-pathfinder/latest/release/1.8.1-notes.html\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nvidia.github.io/cuda-python/cuda-pathfinder/1.8.1/\"\u003ehttps://nvidia.github.io/cuda-python/cuda-pathfinder/1.8.1/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePyPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pypi.org/project/cuda-pathfinder/1.8.1/\"\u003ehttps://pypi.org/project/cuda-pathfinder/1.8.1/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eConda\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://anaconda.org/conda-forge/cuda-pathfinder/files?version=1.8.1\"\u003ehttps://anaconda.org/conda-forge/cuda-pathfinder/files?version=1.8.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econda install conda-forge::cuda-pathfinder=1.8.1\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/NVIDIA/cuda-python/commit/e606d084ccfc502a29990f34fbb6ba7a91655c24\"\u003e\u003ccode\u003ee606d08\u003c/code\u003e\u003c/a\u003e pathfinder: also find ptxas in the nvidia/cu13/bin wheel layout (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/9ba91992f4701ef85969e5801ce4b8960bf68f6f\"\u003e\u003ccode\u003e9ba9199\u003c/code\u003e\u003c/a\u003e cuda.core: accept dict for XyzOptions that are extension types (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2634\"\u003e#2634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/e68addec6dbe229b7e48b5d526b9343bda7b4807\"\u003e\u003ccode\u003ee68adde\u003c/code\u003e\u003c/a\u003e fix(cuda.core): let cuda-gdb display source for JIT-compiled kernels (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/ced8747f29268980197db7acfe7c63419295353b\"\u003e\u003ccode\u003eced8747\u003c/code\u003e\u003c/a\u003e fix(bindings): CUDA_PYTHON_DISABLE_MAJOR_VERSION_WARNING=0 must not disable i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/b959d111f5e7e8d4a69aa79e2951dd510c137173\"\u003e\u003ccode\u003eb959d11\u003c/code\u003e\u003c/a\u003e Avoid absolute generated source paths in cuda.core builds (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2720\"\u003e#2720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/02447272ab3ccfba127a1541139548faa296ef00\"\u003e\u003ccode\u003e0244727\u003c/code\u003e\u003c/a\u003e fix(ci): omit Cython .pxd/.pxi so coverage html can run (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/8020a9021b2a306f36ece250e391d99fb46acb5f\"\u003e\u003ccode\u003e8020a90\u003c/code\u003e\u003c/a\u003e ci: make unattended workflow failures team-visible (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2734\"\u003e#2734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/3373ae235c515d91830cf41b8a6b98cb1b97d3c3\"\u003e\u003ccode\u003e3373ae2\u003c/code\u003e\u003c/a\u003e add missing entry (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2739\"\u003e#2739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/bd75451e06e589bfab84d3fb72ecb0acc174c844\"\u003e\u003ccode\u003ebd75451\u003c/code\u003e\u003c/a\u003e fix(ci): use numba-cuda-mlir wheel-only skips (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/33f2b421f1eb16404230deafa7836082b3a28768\"\u003e\u003ccode\u003e33f2b42\u003c/code\u003e\u003c/a\u003e ci: activate dependency-aware package builds and tests (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2467\"\u003e#2467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/NVIDIA/cuda-python/compare/cuda-pathfinder-v1.8.0...cuda-pathfinder-v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.32.4 to 3.32.5\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.32.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(fork): report where a stalled fork stops 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/filelock/pull/715\"\u003etox-dev/filelock#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: say that mode is read-only in the thread-local section by \u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/716\"\u003etox-dev/filelock#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(lease): clear token after failed acquire by \u003ca href=\"https://github.com/lprnmns\"\u003e\u003ccode\u003e@​lprnmns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/721\"\u003etox-dev/filelock#721\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/lprnmns\"\u003e\u003ccode\u003e@​lprnmns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/721\"\u003etox-dev/filelock#721\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.32.4...3.32.5\"\u003ehttps://github.com/tox-dev/filelock/compare/3.32.4...3.32.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003cp\u003e.. towncrier-draft-entries:: Unreleased\u003c/p\u003e\n\u003cp\u003e.. towncrier release notes start\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.6 (2026-09-08)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoftFileLease\u003c/code\u003e and \u003ccode\u003eAsyncSoftFileLease\u003c/code\u003e now reject a boolean or non-finite \u003ccode\u003elease_duration\u003c/code\u003e, which used to\npublish an owner record their own \u003ccode\u003eowner\u003c/code\u003e property reads back as malformed. :pr:\u003ccode\u003e723\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite heartbeat, stale, and polling intervals in \u003ccode\u003eSoftReadWriteLock\u003c/code\u003e and \u003ccode\u003eAsyncSoftReadWriteLock\u003c/code\u003e,\nincluding cached singleton construction and overflow in the default stale threshold. :pr:\u003ccode\u003e724\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHonor acquisition timeouts and \u003ccode\u003eblocking=False\u003c/code\u003e during \u003ccode\u003eSoftReadWriteLock\u003c/code\u003e state-mutex contention, including\nfailed writer cleanup. Cross-host recovery of an abandoned \u003ccode\u003e.state\u003c/code\u003e marker remains unsupported. :pr:\u003ccode\u003e726\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow acquiring existing lock files that grant write access through group permissions or an ACL even when their\nowner-write mode bit is unset. :pr:\u003ccode\u003e728\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePreserve exception notes and custom attributes when copying or pickling \u003ccode\u003eTimeout\u003c/code\u003e and \u003ccode\u003eSoftFileLockProtocolError\u003c/code\u003e. :pr:\u003ccode\u003e729\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.5 (2026-08-31)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoftFileLease.token\u003c/code\u003e and \u003ccode\u003eAsyncSoftFileLease.token\u003c/code\u003e now read \u003ccode\u003eNone\u003c/code\u003e after a failed acquisition, so a contender\nturned away by a live holder no longer reports a token for a claim it never published. :pr:\u003ccode\u003e721\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocument that \u003ccode\u003emode\u003c/code\u003e has no setter: unlike \u003ccode\u003epoll_interval\u003c/code\u003e, \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eblocking\u003c/code\u003e and \u003ccode\u003elifetime\u003c/code\u003e, it is fixed at construction and \u003ccode\u003elock.mode = ...\u003c/code\u003e raises \u003ccode\u003eAttributeError\u003c/code\u003e. :pr:\u003ccode\u003e716\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.4 (2026-08-23)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStrictSoftFileLock\u003c/code\u003e always retries a claim read whose first attempt reports the claim as pending, so a first read\nthat itself outlasts the retry grace no longer fails closed on a claim it could have read. :pr:\u003ccode\u003e705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsFileLock\u003c/code\u003e waits out a transient \u003ccode\u003eSTATUS_ACCESS_DENIED\u003c/code\u003e from \u003ccode\u003eNtCreateFile\u003c/code\u003e for up to half a second\nbefore raising \u003ccode\u003ePermissionError\u003c/code\u003e, since a peer unlinking the lock file as it releases can answer that for a moment; a\nreal denial still fails fast. :pr:\u003ccode\u003e705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEvery lock class now escapes the hostname it publishes, so a host whose \u003ccode\u003esocket.gethostname()\u003c/code\u003e carries a space, a\nnewline or a byte outside UTF-8 no longer writes a marker it reads back as malformed. Such a host used to lose a held\n\u003ccode\u003eSoftReadWriteLock\u003c/code\u003e read slot to a peer and could not take a write slot or a \u003ccode\u003eStrictSoftFileLock\u003c/code\u003e at all. :pr:\u003ccode\u003e709\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.3 (2026-08-13)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eThe fork-safety audit hook no longer prints \u003ccode\u003eException ignored in audit hook\u003c/code\u003e with a \u003ccode\u003eTypeError\u003c/code\u003e when an audit\nevent fires during interpreter shutdown, after CPython has already cleared the module globals. :pr:\u003ccode\u003e701\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1585dfef9355a5c77d4a9498cc34d3a98056fdb9\"\u003e\u003ccode\u003e1585dfe\u003c/code\u003e\u003c/a\u003e Release 3.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/00177c32686e60bc5ef9875b5841867ea08d4558\"\u003e\u003ccode\u003e00177c3\u003c/code\u003e\u003c/a\u003e 🐛 fix(lease): clear token after failed acquire (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/5aeb9b6a5fe1e86dcb1c44a927aefffd607b17b0\"\u003e\u003ccode\u003e5aeb9b6\u003c/code\u003e\u003c/a\u003e 📝 docs: say that mode is read-only in the thread-local section (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2634dd1dcc597b319770df027491f16d07662952\"\u003e\u003ccode\u003e2634dd1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/37dccf0276f6db1520db9e3482fdf0446c14276e\"\u003e\u003ccode\u003e37dccf0\u003c/code\u003e\u003c/a\u003e 🧪 test(fork): report where a stalled fork stops (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.32.4...3.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firecrawl-py` from 4.40.0 to 4.41.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/firecrawl/firecrawl/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.61 to 3.1.62\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.62\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprepare next release by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2222\"\u003egitpython-developers/GitPython#2222\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep bare-repository worktrees non-bare by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2224\"\u003egitpython-developers/GitPython#2224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject unsafe submodule checkout paths by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2225\"\u003egitpython-developers/GitPython#2225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e from v0.16.0 to 0.16.5 in the pre-commit 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/gitpython-developers/GitPython/pull/2226\"\u003egitpython-developers/GitPython#2226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: join backslash line continuations when reading config values by \u003ca href=\"https://github.com/nkbeast\"\u003e\u003ccode\u003e@​nkbeast\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2227\"\u003egitpython-developers/GitPython#2227\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/nkbeast\"\u003e\u003ccode\u003e@​nkbeast\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2227\"\u003egitpython-developers/GitPython#2227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\"\u003ehttps://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\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/gitpython-developers/GitPython/commit/db47516dac750c5968b8f6d388b18712c355df50\"\u003e\u003ccode\u003edb47516\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/10ec385a725fee70def3d9bb7b52208e75174068\"\u003e\u003ccode\u003e10ec385\u003c/code\u003e\u003c/a\u003e get better commit messages from agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/b7548979693b3f7c8d13b8da2b7c3ecef07327da\"\u003e\u003ccode\u003eb754897\u003c/code\u003e\u003c/a\u003e test: cover subdirectory discovery and pathspec commands in bare-repo worktre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/9ebf8b62dfb9ca05178334dc909a4d9a52b505df\"\u003e\u003ccode\u003e9ebf8b6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2227\"\u003e#2227\u003c/a\u003e from nkbeast/fix-config-backslash-continuation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a15f7910d1d9a169b5a0c7adf14ce9bf4ede35d0\"\u003e\u003ccode\u003ea15f791\u003c/code\u003e\u003c/a\u003e fix: parse joined config values as a whole\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/60dd9467a73140e00b0d1b0857df5176660b3832\"\u003e\u003ccode\u003e60dd946\u003c/code\u003e\u003c/a\u003e fix: ignore continuation markers in config comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/075a664f3da8564c44f2b74536914b9ce9fb4cc1\"\u003e\u003ccode\u003e075a664\u003c/code\u003e\u003c/a\u003e fix: join backslash line continuations when reading config values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/62d1e2f63ec51f868781c79f8280dc90b46af987\"\u003e\u003ccode\u003e62d1e2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2226\"\u003e#2226\u003c/a\u003e from gitpython-developers/dependabot/pre_commit/pre-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/23d0e9269c84573129acd1f90dbedf639e889c8f\"\u003e\u003ccode\u003e23d0e92\u003c/code\u003e\u003c/a\u003e build(deps): bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/8a14adc62401f6b3cb8d9dcf8fa78615810a7e98\"\u003e\u003ccode\u003e8a14adc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2225\"\u003e#2225\u003c/a\u003e from gitpython-developers/submodule-path-hardening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 2.2.0 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.3.0\"\u003e2.3.0\u003c/a\u003e - 2026-09-04\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.2.0...2.3.0\"\u003eCompare with 2.2.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to give precedence to docstrings in stubs vs. source (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/09a2a1323d1b4d022a4ce76a9f2839287b9c100e\"\u003e09a2a13\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/447\"\u003eIssue-447\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/481\"\u003ePR-481\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve nested tuple parentheses (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e095a7cd4c239abd961f7899d7ddb17ea27caead\"\u003ee095a7c\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/487\"\u003ePR-487\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve nested f-string format specs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/38921b70e3dbba9a493aa5117f11a3a7883634cf\"\u003e38921b7\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/486\"\u003ePR-486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable all docstring warnings when passing \u003ccode\u003ewarnings=False\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5cb0ae2f00748288c4009c1d4b6ee19f6aca6b76\"\u003e5cb0ae2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReuse computed parent in \u003ccode\u003eis_imported\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/092ac3162e1477a4b62eb875365996998adbd77d\"\u003e092ac31\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eOnly build debug messages at debug level (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f05a4ae5587d685bea1b0c98294a047b56c8df0\"\u003e8f05a4a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid creating new sets when handling labels (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/06cd02e63c240286d11450887cc01b0ef76d8908\"\u003e06cd02e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMaintain map of AST node type to visitor function (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e21851e732782823006223a7f5f8111b4200a257\"\u003ee21851e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid cyclic refs in ASTs to allow garbage-collecting them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b968de091afc1a4fd241f457538433ce3ada7520\"\u003eb968de0\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache per-module path-related properties during serialization (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8bd6cc4b34e96fc8235271cfa93a1a6a77091707\"\u003e8bd6cc4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eDo not fire load events when no extension has hooked them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0e2ae7c8cd1563d6dcca7a6c37fb8f2ec072cb24\"\u003e0e2ae7c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCompute costly message lazily in alias resolution errors (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e391b8239747bb62908819e55468a961ffbaa99\"\u003e1e391b8\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when merging stubs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/03cae743e02c56af7375ffbfa70d6acf02e5491d\"\u003e03cae74\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3cf2c41bb5f734e57b612b42d178e87af605ae8\"\u003ed3cf2c4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eImprove efficiency of AST parameter extraction (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e37cd488d6adf55065b3ce4e7932faf1ff7d186\"\u003e1e37cd4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache serializable expression fields (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/f9e48c16ebaeb719d5768cb921637aebe377a639\"\u003ef9e48c1\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eUse maps to make JSON encoder faster (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b7de96fb516218ae3bf6a8e6d014a223df67f4a3\"\u003eb7de96f\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid recomputing inherited members when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a29e028ff034752ff747dda17f3f875f22c2a192\"\u003ea29e028\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMake Google, Numpy and Sphinx docstring parsers faster (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/7f39373f8da779fb104dd2b6c11a02d95da628c4\"\u003e7f39373\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003ePre-compile patterns for docstring style detection (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ad58ad5b86390a8a02311189315dd4f59e0300a4\"\u003ead58ad5\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eLRU-cache parsing of type annotations in docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1671e59fb675e9b45338956ce8aa5f5e56692690\"\u003e1671e59\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.3.0\"\u003e2.3.0\u003c/a\u003e - 2026-09-04\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.2.0...2.3.0\"\u003eCompare with 2.2.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to give precedence to docstrings in stubs vs. source (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/09a2a1323d1b4d022a4ce76a9f2839287b9c100e\"\u003e09a2a13\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/447\"\u003eIssue-447\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/481\"\u003ePR-481\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve nested tuple parentheses (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e095a7cd4c239abd961f7899d7ddb17ea27caead\"\u003ee095a7c\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/487\"\u003ePR-487\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve nested f-string format specs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/38921b70e3dbba9a493aa5117f11a3a7883634cf\"\u003e38921b7\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/486\"\u003ePR-486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable all docstring warnings when passing \u003ccode\u003ewarnings=False\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5cb0ae2f00748288c4009c1d4b6ee19f6aca6b76\"\u003e5cb0ae2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReuse computed parent in \u003ccode\u003eis_imported\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/092ac3162e1477a4b62eb875365996998adbd77d\"\u003e092ac31\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eOnly build debug messages at debug level (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f05a4ae5587d685bea1b0c98294a047b56c8df0\"\u003e8f05a4a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid creating new sets when handling labels (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/06cd02e63c240286d11450887cc01b0ef76d8908\"\u003e06cd02e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMaintain map of AST node type to visitor function (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e21851e732782823006223a7f5f8111b4200a257\"\u003ee21851e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid cyclic refs in ASTs to allow garbage-collecting them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b968de091afc1a4fd241f457538433ce3ada7520\"\u003eb968de0\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache per-module path-related properties during serialization (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8bd6cc4b34e96fc8235271cfa93a1a6a77091707\"\u003e8bd6cc4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eDo not fire load events when no extension has hooked them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0e2ae7c8cd1563d6dcca7a6c37fb8f2ec072cb24\"\u003e0e2ae7c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCompute costly message lazily in alias resolution errors (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e391b8239747bb62908819e55468a961ffbaa99\"\u003e1e391b8\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when merging stubs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/03cae743e02c56af7375ffbfa70d6acf02e5491d\"\u003e03cae74\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3cf2c41bb5f734e57b612b42d178e87af605ae8\"\u003ed3cf2c4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eImprove efficiency of AST parameter extraction (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e37cd488d6adf55065b3ce4e7932faf1ff7d186\"\u003e1e37cd4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache serializable expression fields (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/f9e48c16ebaeb719d5768cb921637aebe377a639\"\u003ef9e48c1\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eUse maps to make JSON encoder faster (\u003ca href=\"https://github.com/mkdocs...\n\n_Description has been truncated_","html_url":"https://github.com/Amaan8005/DocMind-AI/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amaan8005%2FDocMind-AI/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"5434895825","node_id":"PR_kwDOOsXHvc8AAAABDRY0tA","number":924,"state":"closed","title":"chore(deps): bump the backend group across 1 directory with 41 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T10:30:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-12T17:25:27.000Z","updated_at":"2026-09-13T10:30:03.000Z","time_to_close":61475,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend","update_count":41,"packages":[{"name":"langchain-community","old_version":"0.3.31","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"sentence-transformers","old_version":"5.7.0","new_version":"6.0.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.3","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"websockets","old_version":"17.0.1","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"alembic","old_version":"1.19.1","new_version":"1.19.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"ctranslate2","old_version":"4.8.1","new_version":"4.8.2","repository_url":"https://github.com/OpenNMT/CTranslate2"},{"name":"onnxruntime","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"yt-dlp","old_version":"2026.7.4","new_version":"2026.8.19","repository_url":"https://github.com/yt-dlp/yt-dlp"},{"name":"deepgram-sdk","old_version":"7.7.0","new_version":"7.8.1","repository_url":"https://github.com/deepgram/deepgram-python-sdk"},{"name":"assemblyai","old_version":"1.0.0","new_version":"1.3.0","repository_url":"https://github.com/AssemblyAI/assemblyai-python-sdk"},{"name":"azure-cognitiveservices-speech","old_version":"1.51.1","new_version":"1.51.2"},{"name":"boto3","old_version":"1.43.74","new_version":"1.43.91","repository_url":"https://github.com/boto/boto3"},{"name":"openai","old_version":"3.3.0","new_version":"3.11.0","repository_url":"https://github.com/openai/openai-python"},{"name":"presidio-anonymizer","old_version":"2.2.362","new_version":"2.2.364","repository_url":"https://github.com/data-privacy-stack/presidio"},{"name":"gliner","old_version":"0.2.28","new_version":"0.2.29","repository_url":"https://github.com/urchade/GLiNER"},{"name":"msal","old_version":"1.37.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"onnxscript","old_version":"0.7.1","new_version":"0.7.2","repository_url":"https://github.com/microsoft/onnxscript"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.6","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"onnxruntime-gpu","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"cuda-pathfinder","old_version":"1.6.1","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"botocore","old_version":"1.43.75","new_version":"1.43.91","repository_url":"https://github.com/boto/botocore"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"google-api-core","old_version":"2.35.0","new_version":"2.36.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"narwhals","old_version":"2.25.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"import-linter","old_version":"2.13","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"},{"name":"whisperx","old_version":"3.8.1","new_version":"3.8.6","repository_url":"https://github.com/m-bain/whisperx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend group with 41 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.31` | `0.4.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.7.0` | `6.0.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.3` | `0.52.4` |\n| [websockets](https://github.com/python-websockets/websockets) | `17.0.1` | `17.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.1` | `1.19.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [ctranslate2](https://github.com/OpenNMT/CTranslate2) | `4.8.1` | `4.8.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | `2026.7.4` | `2026.8.19` |\n| [deepgram-sdk](https://github.com/deepgram/deepgram-python-sdk) | `7.7.0` | `7.8.1` |\n| [assemblyai](https://github.com/AssemblyAI/assemblyai-python-sdk) | `1.0.0` | `1.3.0` |\n| azure-cognitiveservices-speech | `1.51.1` | `1.51.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.74` | `1.43.91` |\n| [openai](https://github.com/openai/openai-python) | `3.3.0` | `3.11.0` |\n| [presidio-anonymizer](https://github.com/data-privacy-stack/presidio) | `2.2.362` | `2.2.364` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.28` | `0.2.29` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.37.0` | `1.38.0` |\n| [onnxscript](https://github.com/microsoft/onnxscript) | `0.7.1` | `0.7.2` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.6` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.6.1` | `1.8.1` |\n| [botocore](https://github.com/boto/botocore) | `1.43.75` | `1.43.91` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.35.0` | `2.36.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.58.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.13` | `2.15` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n| [whisperx](https://github.com/m-bain/whisperx) | `3.8.1` | `3.8.6` |\n\n\nUpdates `langchain-community` from 0.3.31 to 0.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-community==0.4.2\u003c/h2\u003e\n\u003ch2\u003eSunsetting langchain-community\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003elangchain-community is being sunset\u003c/strong\u003e. See \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/674\"\u003elangchain-ai/langchain-community#674\u003c/a\u003e for details and guidance. Thank you to everyone who has contributed integrations, fixes, reviews, and maintenance over the years.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: modernize infra by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/402\"\u003elangchain-ai/langchain-community#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PMID from PubMedAPIWrapper utility by \u003ca href=\"https://github.com/davale88\"\u003e\u003ccode\u003e@​davale88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/43\"\u003elangchain-ai/langchain-community#43\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egitlab api wrapper[patch]: fix create_file eats the first letter by \u003ca href=\"https://github.com/martra\"\u003e\u003ccode\u003e@​martra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/153\"\u003elangchain-ai/langchain-community#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate lancedb.py by \u003ca href=\"https://github.com/AmirBraham\"\u003e\u003ccode\u003e@​AmirBraham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/108\"\u003elangchain-ai/langchain-community#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrecting OpenSearchVectorStore documentation for AsyncClient import problem by \u003ca href=\"https://github.com/georg-wind\"\u003e\u003ccode\u003e@​georg-wind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/252\"\u003elangchain-ai/langchain-community#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test_duckduckdgo_search_api.py import by \u003ca href=\"https://github.com/theprashasst\"\u003e\u003ccode\u003e@​theprashasst\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/248\"\u003elangchain-ai/langchain-community#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typos. by \u003ca href=\"https://github.com/oumizx\"\u003e\u003ccode\u003e@​oumizx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/277\"\u003elangchain-ai/langchain-community#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect misleading CosmosDB connection string validation error message by \u003ca href=\"https://github.com/lasagna0\"\u003e\u003ccode\u003e@​lasagna0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/315\"\u003elangchain-ai/langchain-community#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix score threshold is zero scenario by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/398\"\u003elangchain-ai/langchain-community#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link of partition docs of \u003ccode\u003eunstructured\u003c/code\u003e package by \u003ca href=\"https://github.com/mhihasan\"\u003e\u003ccode\u003e@​mhihasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/354\"\u003elangchain-ai/langchain-community#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(loader): fix TextLoader doc string indentation by \u003ca href=\"https://github.com/vneogi199\"\u003e\u003ccode\u003e@​vneogi199\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/360\"\u003elangchain-ai/langchain-community#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed Syntax Error in Trino dialect by \u003ca href=\"https://github.com/saathwik-tk\"\u003e\u003ccode\u003e@​saathwik-tk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/399\"\u003elangchain-ai/langchain-community#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: message line regex by \u003ca href=\"https://github.com/martinschaer\"\u003e\u003ccode\u003e@​martinschaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/196\"\u003elangchain-ai/langchain-community#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: remove integration as the product has changed by \u003ca href=\"https://github.com/Xe\"\u003e\u003ccode\u003e@​Xe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/159\"\u003elangchain-ai/langchain-community#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate sql_database.py to support materialized view by \u003ca href=\"https://github.com/groundrace\"\u003e\u003ccode\u003e@​groundrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/281\"\u003elangchain-ai/langchain-community#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRSS Feed Document Loader Publish Date Fallback by \u003ca href=\"https://github.com/mariomeyer\"\u003e\u003ccode\u003e@​mariomeyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/219\"\u003elangchain-ai/langchain-community#219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: lint by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/405\"\u003elangchain-ai/langchain-community#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): add auto-labelers by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/406\"\u003elangchain-ai/langchain-community#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cost by 1k tokens for sonnet 4.5 by \u003ca href=\"https://github.com/higorgardin\"\u003e\u003ccode\u003e@​higorgardin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/391\"\u003elangchain-ai/langchain-community#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Refactor query_builder to use limit method by \u003ca href=\"https://github.com/userNanni\"\u003e\u003ccode\u003e@​userNanni\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/377\"\u003elangchain-ai/langchain-community#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate document_loaders from rapidocr_onnxruntime to rapidocr by \u003ca href=\"https://github.com/athoik\"\u003e\u003ccode\u003e@​athoik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/375\"\u003elangchain-ai/langchain-community#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate Oracle AI Vector Search classes by \u003ca href=\"https://github.com/fileames\"\u003e\u003ccode\u003e@​fileames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/283\"\u003elangchain-ai/langchain-community#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add default factory to api_wrapper of GoogleSerperRun by \u003ca href=\"https://github.com/duccm94\"\u003e\u003ccode\u003e@​duccm94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/157\"\u003elangchain-ai/langchain-community#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[fix]: support spark x1 reasoning model's 'reasoning_content' field. by \u003ca href=\"https://github.com/vsxd\"\u003e\u003ccode\u003e@​vsxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/251\"\u003elangchain-ai/langchain-community#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use uuid1() instead of uuid4() for Cassandra TIMEUUID columns by \u003ca href=\"https://github.com/woohhan\"\u003e\u003ccode\u003e@​woohhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/225\"\u003elangchain-ai/langchain-community#225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImport chat_models from langchain_community in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/198\"\u003elangchain-ai/langchain-community#198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Retrieve all Slack channels visible to the client by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/146\"\u003elangchain-ai/langchain-community#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: fix elevenlabs \u0026gt;=2.3.0 api change by \u003ca href=\"https://github.com/ebwood\"\u003e\u003ccode\u003e@​ebwood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/102\"\u003elangchain-ai/langchain-community#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: write image data to buffer before checking for empty BytesIO in image extraction by \u003ca href=\"https://github.com/mighoocool\"\u003e\u003ccode\u003e@​mighoocool\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/193\"\u003elangchain-ai/langchain-community#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealign SupabaseVectorStore ID handling with JS lib by \u003ca href=\"https://github.com/taishikato\"\u003e\u003ccode\u003e@​taishikato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/137\"\u003elangchain-ai/langchain-community#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(document_loaders): yt api as per latest version by \u003ca href=\"https://github.com/lokeshparab\"\u003e\u003ccode\u003e@​lokeshparab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/206\"\u003elangchain-ai/langchain-community#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add comprehensive routing support to OpenSearchVectorSearch by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/349\"\u003elangchain-ai/langchain-community#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(chat_models): parallel tool calls in ChatTongyi when incremental streaming output is enabled. by \u003ca href=\"https://github.com/TBice123123\"\u003e\u003ccode\u003e@​TBice123123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/111\"\u003elangchain-ai/langchain-community#111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(infra): remove unused \u003ccode\u003edataclasses-json\u003c/code\u003e dependency by \u003ca href=\"https://github.com/noirbee\"\u003e\u003ccode\u003e@​noirbee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/270\"\u003elangchain-ai/langchain-community#270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/408\"\u003elangchain-ai/langchain-community#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(agent_toolkits): Make \u003ccode\u003eWebClient\u003c/code\u003e injectable for Slack toolkit by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/145\"\u003elangchain-ai/langchain-community#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(document_loaders): add flexible timeout to \u003ccode\u003ePlaywrightURLLoader\u003c/code\u003e by \u003ca href=\"https://github.com/parthsompura\"\u003e\u003ccode\u003e@​parthsompura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/104\"\u003elangchain-ai/langchain-community#104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SSL verification option to recursive link fetching by \u003ca href=\"https://github.com/rajasblack\"\u003e\u003ccode\u003e@​rajasblack\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/46\"\u003elangchain-ai/langchain-community#46\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: some cleanup by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/412\"\u003elangchain-ai/langchain-community#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(azure): Fix key assignment logic by \u003ca href=\"https://github.com/yashovardhan99\"\u003e\u003ccode\u003e@​yashovardhan99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/418\"\u003elangchain-ai/langchain-community#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(vectorstores): add routing support for hybrid search by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/416\"\u003elangchain-ai/langchain-community#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enit: use american english by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/419\"\u003elangchain-ai/langchain-community#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): clarify allowed scopes section in PR linting workflow by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/420\"\u003elangchain-ai/langchain-community#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/422\"\u003elangchain-ai/langchain-community#422\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/langchain-ai/langchain-community/commit/7c10a5fa327f6aaaf7c932822a9e5d144891406e\"\u003e\u003ccode\u003e7c10a5f\u003c/code\u003e\u003c/a\u003e fix: bump deps and fix test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/0d3630d463521db776ef9f4d2f7d8eceab3d1fcc\"\u003e\u003ccode\u003e0d3630d\u003c/code\u003e\u003c/a\u003e fix: sunset package (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/3ade247a075de8a20b95bb48d897a067ee1fecb5\"\u003e\u003ccode\u003e3ade247\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/27c60bad4c17b0460d174abac0fb5d1ade0bfd51\"\u003e\u003ccode\u003e27c60ba\u003c/code\u003e\u003c/a\u003e chore(deps): bump langsmith from 0.7.31 to 0.8.4 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/666\"\u003e#666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/2e8d934934f79923c9349ca67ed21de4dc268033\"\u003e\u003ccode\u003e2e8d934\u003c/code\u003e\u003c/a\u003e chore(deps): bump jupyter-server from 2.17.0 to 2.18.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/f0b16c2a40cca43cc2aac13880d56d3f42ea89b1\"\u003e\u003ccode\u003ef0b16c2\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.2.0 to 3.2.1 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/bfbfe3f1822dfc0acc2a2999108ac7c721f4f8e2\"\u003e\u003ccode\u003ebfbfe3f\u003c/code\u003e\u003c/a\u003e chore(deps): update scikit-learn requirement from \u0026lt;2,\u0026gt;=1.2.2 to \u0026gt;=1.7.2,\u0026lt;2 in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/4cbef29068509f90e8284a56a51b4ec3c1fd3cd5\"\u003e\u003ccode\u003e4cbef29\u003c/code\u003e\u003c/a\u003e chore(deps): update hdbcli requirement from \u0026lt;3,\u0026gt;=2.19.21 to \u0026gt;=2.28.20,\u0026lt;3 in /...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/22377e1e92dfdda5424f4eba6d70e511075f8226\"\u003e\u003ccode\u003e22377e1\u003c/code\u003e\u003c/a\u003e chore(deps): update keybert requirement from \u0026gt;=0.8.5 to \u0026gt;=0.9.0 in /libs/comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/c4dbaa2174bf743e2b6f6a74684c62786ecd6334\"\u003e\u003ccode\u003ec4dbaa2\u003c/code\u003e\u003c/a\u003e chore(deps): bump notebook from 7.5.4 to 7.5.6 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.31...libs/community/v0.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.7.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.1 - Restore the PyLate prefix on prompted checkpoints, 80 documented multi-vector models\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a multi-vector loading bug: PyLate checkpoints that carry both a \u003ccode\u003e[Q]\u003c/code\u003e/\u003ccode\u003e[D]\u003c/code\u003e prefix and a text prompt lost the prefix, so they were encoded without a marker they were trained with. It also grows the documented multi-vector model tables from 51 checkpoints to 80.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==6.0.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==6.0.1\npip install sentence-transformers[onnx-gpu]==6.0.1\npip install sentence-transformers[onnx]==6.0.1\npip install sentence-transformers[openvino]==6.0.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==6.0.1\npip install sentence-transformers[audio]==6.0.1\npip install sentence-transformers[video]==6.0.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==6.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eCompose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003ePyLate supports a prefix as well as prompt text, and Sentence Transformers assumed that these were mutually exclusive. However, the following three checkpoints carry both a prefix and a prompt, and were trained with the prefix prepended to the prompt text:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero\"\u003e\u003ccode\u003elightonai/ColBERT-Zero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-unsupervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-unsupervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-supervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-supervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePyLate trained these checkpoints on \u003ccode\u003e[CLS] [Q] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] [D] search_document: ...\u003c/code\u003e, but Sentence Transformers dropped the prefix and encoded them as \u003ccode\u003e[CLS] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] search_document: ...\u003c/code\u003e. After the fix, the performance of the \u003ccode\u003eColBERT-Zero\u003c/code\u003e model improved from 0.6569 NDCG@10 to 0.6824 on the NanoBEIR benchmark. To my knowledge, only these 3 checkpoints used both a prefix and a prompt, so this is the only case where the bug would have affected you.\u003c/p\u003e\n\u003ch2\u003eForward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eRouter.forward\u003c/code\u003e has always passed \u003ccode\u003etask\u003c/code\u003e down to the routed module, but \u003ccode\u003eRouter.preprocess\u003c/code\u003e did not, so anything a module does with the task at preprocessing time did nothing behind a \u003ccode\u003eRouter\u003c/code\u003e: \u003ccode\u003equery_length\u003c/code\u003e and \u003ccode\u003edocument_length\u003c/code\u003e caps, \u003ccode\u003equery_expansion\u003c/code\u003e, and the chat-template \u003ccode\u003etask\u003c/code\u003e keyword. No released checkpoint combines a \u003ccode\u003eRouter\u003c/code\u003e with those settings, so this is a latent bug rather than one you are likely to have hit. It would have affected anyone building such a model themselves, with no error to indicate it.\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe multi-vector \u003ca href=\"https://sbert.net/docs/multi_vector_encoder/pretrained_models.html\"\u003epretrained models tables\u003c/a\u003e grew from 29 text and 22 visual document retrieval checkpoints to 38 and 42 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3963\"\u003e#3963\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e), with \u003ccode\u003erevision\u003c/code\u003e and \u003ccode\u003etrust_remote_code\u003c/code\u003e notes refreshed as upstream pull requests merged (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDocumented which Hub tag to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e), and linked the Multi-Vector Encoder blogposts from the docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded MultiVectorEncoder to the Agent Skill README and refreshed the SauerkrautLM scores (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3955\"\u003e#3955\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCorrected the minimum versions in the README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3952\"\u003e#3952\u003c/a\u003e). It still recommended PyTorch 1.11.0+ and \u003ccode\u003etransformers\u003c/code\u003e v4.41.0+, where v6.0 requires PyTorch 2.2+ and \u003ccode\u003etransformers\u003c/code\u003e v5.0+. This is the text rendered as the PyPI project description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM scores by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3955\"\u003ehuggingface/sentence-transformers#3955\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the README dependency versions by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3952\"\u003ehuggingface/sentence-transformers#3952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add more MultiVectorEncoder models to the pretrained models tables by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3963\"\u003ehuggingface/sentence-transformers#3963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify which Hub tags to filter on for each model type by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3964\"\u003ehuggingface/sentence-transformers#3964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Link the Multi-Vector Encoder blogposts by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3966\"\u003ehuggingface/sentence-transformers#3966\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/huggingface/sentence-transformers/commit/b0acd1a4d22ba2bc10072868ddea7612561c9424\"\u003e\u003ccode\u003eb0acd1a\u003c/code\u003e\u003c/a\u003e Update README installation versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9b415ac93b586400258ac9876c81ce28c36547ba\"\u003e\u003ccode\u003e9b415ac\u003c/code\u003e\u003c/a\u003e Release v6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cc0669cea57c834c651f001e3cb07b6fc847f147\"\u003e\u003ccode\u003ecc0669c\u003c/code\u003e\u003c/a\u003e Add/update revisions for pretrained MVE models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f8390f466c9d127cd51dd41805557adaab09d472\"\u003e\u003ccode\u003ef8390f4\u003c/code\u003e\u003c/a\u003e [docs] Refresh the MultiVectorEncoder pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4b517229c1dc17ead6c2a61b3d248f62fe4738eb\"\u003e\u003ccode\u003e4b51722\u003c/code\u003e\u003c/a\u003e [fix] Compose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/e99c4a9f2422c285cd2d286aeda1af237eadd01d\"\u003e\u003ccode\u003ee99c4a9\u003c/code\u003e\u003c/a\u003e [fix] Forward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/5d2ec939e960d85afe638bba87523926c63ab263\"\u003e\u003ccode\u003e5d2ec93\u003c/code\u003e\u003c/a\u003e [docs] Link the Multi-Vector Encoder blogposts (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9c5de2aa8432d7d150e35a7cd4383a39a13e307b\"\u003e\u003ccode\u003e9c5de2a\u003c/code\u003e\u003c/a\u003e [docs] Clarify which Hub tags to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/83680bdf460229a41dd3bf07ed80b5a65d29a430\"\u003e\u003ccode\u003e83680bd\u003c/code\u003e\u003c/a\u003e [docs] Add more MultiVectorEncoder models to the pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1a43278abe510ca9011fdd0e698c58470ef830eb\"\u003e\u003ccode\u003e1a43278\u003c/code\u003e\u003c/a\u003e docs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.7.0...v6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.3 to 0.141.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.141.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for background tasks and headers from dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16105\"\u003e#16105\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📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16104\"\u003e#16104\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.141.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more convenient with \u003ccode\u003efastapi dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16102\"\u003e#16102\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.140.13\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003estatus_code\u003c/code\u003e being ignored for SSE and JSONL streaming endpoints. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15937\"\u003e#15937\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix \u003ccode\u003eformat_sse_event\u003c/code\u003e docstring rendering of \u003ccode\u003e\\n\\n\u003c/code\u003e terminator. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15613\"\u003e#15613\u003c/a\u003e by \u003ca href=\"https://github.com/AshNicolus\"\u003e\u003ccode\u003e@​AshNicolus\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add API reference page for fastapi.sse. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15930\"\u003e#15930\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.12\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix line splitting in \u003ccode\u003eformat_sse_event\u003c/code\u003e to comply with SSE spec. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15515\"\u003e#15515\u003c/a\u003e by \u003ca href=\"https://github.com/Zawwarsami16\"\u003e\u003ccode\u003e@​Zawwarsami16\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.11\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eresponse_model_*\u003c/code\u003e params ignored for non-generator endpoints with \u003ccode\u003eIterable[..]\u003c/code\u003e return type. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15093\"\u003e#15093\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling sequences with nested Annotated types. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14874\"\u003e#14874\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Accept any base test failure as regression. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16092\"\u003e#16092\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🐛 Preserve pytest exit code in regression check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16091\"\u003e#16091\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✅ Test PR regressions against base code. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16090\"\u003e#16090\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.140.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eexclude_defaults\u003c/code\u003e not propagated to dict keys and values in \u003ccode\u003ejsonable_encoder\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16043\"\u003e#16043\u003c/a\u003e by \u003ca href=\"https://github.com/MBGrao\"\u003e\u003ccode\u003e@​MBGrao\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/95f8322ee1dcda7ceace7b1c4f6c9915b36d748f\"\u003e\u003ccode\u003e95f8322\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16106\"\u003e#16106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f137944c435cff4e4b30ea7d12855ea88ddb868c\"\u003e\u003ccode\u003ef137944\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d62354434b2e508fe89024213b220ca8e67dea5e\"\u003e\u003ccode\u003ed623544\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for background tasks and headers from dependencies in `app.fron...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d211b9c1009d577f39fa2b19b10d9a93a72a0ed\"\u003e\u003ccode\u003e1d211b9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a1f8768411e62093e70ce142ea10863a485643c\"\u003e\u003ccode\u003e8a1f876\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16104\"\u003e#16104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7e7b651d6946c07cc9f675f39c9501d08319e57\"\u003e\u003ccode\u003ec7e7b65\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16103\"\u003e#16103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6bceb84053eb2405e9c000aad30ea13367b5ee32\"\u003e\u003ccode\u003e6bceb84\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5429fed84e84e32672c25a953eca3429b841ce90\"\u003e\u003ccode\u003e5429fed\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more conven...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/628663f4f899c465da423bce681c7adf9a218948\"\u003e\u003ccode\u003e628663f\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.140.13 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16096\"\u003e#16096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0b54fd00273019034dd30b120ac842e65d80690e\"\u003e\u003ccode\u003e0b54fd0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.3...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.3 to 0.52.4\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.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\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.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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/8988c23704fc373c9206cca53ec57dd8ad7f44a5\"\u003e\u003ccode\u003e8988c23\u003c/code\u003e\u003c/a\u003e Stabilize macOS Python 3.13 signal shutdown tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/898ddca9254b53c5bf7a6ee509756704caaa949f\"\u003e\u003ccode\u003e898ddca\u003c/code\u003e\u003c/a\u003e Update PyPI publish action to version 1.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3869f8aac2bdd040fa3fbe564e1dad67e2637641\"\u003e\u003ccode\u003e3869f8a\u003c/code\u003e\u003c/a\u003e Restore Mermaid diagram rendering (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/64148a9c574e1eb87d3d09b3ce4c256606f8d973\"\u003e\u003ccode\u003e64148a9\u003c/code\u003e\u003c/a\u003e Version 0.52.4 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3079\"\u003e#3079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9e9e5691bd14d5c4cd66d9bd76c7730bc48461a2\"\u003e\u003ccode\u003e9e9e569\u003c/code\u003e\u003c/a\u003e docs: correct release example PR number (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b783dacab50b9d6767b0cf65826b2dc3aae21909\"\u003e\u003ccode\u003eb783dac\u003c/code\u003e\u003c/a\u003e Remove duplicate Date header from SansIO WebSocket handshakes (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/27019b2a4b1fa6d68a289fcf7d738fbdc6ee4e5d\"\u003e\u003ccode\u003e27019b2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1b6427311bb84a15addee688f6d41d96e33f8b0a\"\u003e\u003ccode\u003e1b64273\u003c/code\u003e\u003c/a\u003e Fix a typo in index.md (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `websockets` from 17.0.1 to 17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/e87ea9be0373edd5065b5e94dfa714cfde23023b\"\u003e\u003ccode\u003ee87ea9b\u003c/code\u003e\u003c/a\u003e Release version 17.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/caf68ab866350ab43305bc0a2ce28e4c845b90ab\"\u003e\u003ccode\u003ecaf68ab\u003c/code\u003e\u003c/a\u003e Minor whitespace normalization.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/f4c73b76c74044c53f700360792448ee0328983b\"\u003e\u003ccode\u003ef4c73b7\u003c/code\u003e\u003c/a\u003e Accept pathlib.Path objects in path arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/b1e4a144d1824ec4dbd2416489691bbe212a1be8\"\u003e\u003ccode\u003eb1e4a14\u003c/code\u003e\u003c/a\u003e Clarify when the new asyncio implementation became the default.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c7cc7ed3508c3ce082801994e7587ac694758102\"\u003e\u003ccode\u003ec7cc7ed\u003c/code\u003e\u003c/a\u003e Move process_exception to the Sans-I/O layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/2543503f5e6633e79afb20992511b12ef2b7d663\"\u003e\u003ccode\u003e2543503\u003c/code\u003e\u003c/a\u003e Support reconnecting in the threading implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1c8fb090d966c358dcb4069b8c71c13969d1cec0\"\u003e\u003ccode\u003e1c8fb09\u003c/code\u003e\u003c/a\u003e Follow redirects in the sync implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1f7f0e537233ac82e4ca51921678963c696c8c08\"\u003e\u003ccode\u003e1f7f0e5\u003c/code\u003e\u003c/a\u003e Deprecate calling connect() directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c06d5c566b04113405272230856de669e8534e74\"\u003e\u003ccode\u003ec06d5c5\u003c/code\u003e\u003c/a\u003e Support overriding host/post in the sync client.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/885e69bc1a218566bb0ad653c2c326e80245ab6a\"\u003e\u003ccode\u003e885e69b\u003c/code\u003e\u003c/a\u003e Add tests for connecting without a context manager.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/17.0.1...17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.19.1 to 1.19.2\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.19.2\u003c/h1\u003e\n\u003cp\u003eReleased: September 4, 2026\u003c/p\u003e\n\u003ch2\u003echanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[changed] [autogenerate]\u003c/strong\u003e The autogenerate plugin for CHECK constraint detection by name, added in\n1.19.0. for \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/508\"\u003e#508\u003c/a\u003e, is no longer enabled by default.  It has been\nrenamed from \u003ccode\u003ealembic.autogenerate.checkconstraint_byname\u003c/code\u003e to\n\u003ccode\u003ealembic.ext.checkconstraint_byname\u003c/code\u003e and no longer matches on the\n\u003ccode\u003e\u0026quot;alembic.autogenerate.*\u0026quot;\u003c/code\u003e wildcard, which remains the default plugin\nspecification.  The previous name will still function as well if placed in\nthe plugins list explicitly,  both to enable the plugin and within a\n\u003ccode\u003e\u0026quot;~\u0026quot;\u003c/code\u003e exclusion, so that an \u003ccode\u003eenv.py\u003c/code\u003e written against 1.19.0 or 1.19.1\nrequires no change.\u003c/p\u003e\n\u003cp\u003eThe plugin is now recommended only for schemas that ensure the naming of\nall constraints using a client side naming convention, otherwise there's a\npersistent risk of false positives. See\n\u003ccode\u003eautogenerate_check_constraints\u003c/code\u003e for background on things to be aware\nof when using this plugin.\u003c/p\u003e\n\u003cp\u003eAs part of this change \u0026quot;type bound\u0026quot; CHECK constraints, which include\nconstraints generated for the \u003ccode\u003eBoolean\u003c/code\u003e and \u003ccode\u003eEnum\u003c/code\u003e datatypes when the\n\u003ccode\u003ecreate_constraint\u003c/code\u003e parameter is set to True, are no longer ignored in\nthe metadata side, so that normal name-based matching can occur for\nthese constraints.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1859\"\u003e#1859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate] [batch]\u003c/strong\u003e The target of a \u003ccode\u003e~sqlalchemy.schema.ForeignKey\u003c/code\u003e is now located\nusing the \u003ccode\u003eForeignKey.target_tokens\u003c/code\u003e and\n\u003ccode\u003eForeignKey.target_table_key\u003c/code\u003e accessors added in SQLAlchemy 2.1, rather\nthan by splitting the dotted string form of that target on \u003ccode\u003e\u0026quot;.\u0026quot;\u003c/code\u003e.  As a\ndot inside a schema, table or column name cannot be told apart from the\nseparator between those names, a foreign key whose target name contained\na dot was previously mis-parsed by autogenerate rendering as well as by\nbatch migrations.  The dotted string continues to be split when running\nagainst SQLAlchemy 2.0, where these accessors are not present.  Thanks to\nGyanu Mayank for the initial pull request.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1860\"\u003e#1860\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.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\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\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joserfc` from 1.7.4 to 1.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/joserfc/releases\"\u003ejoserfc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd max_recipients on JWERegistry  -  by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df\"\u003e\u003c!-- raw HTML omitted --\u003e(d6dc8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore unknown kty in KeySet.import_key_set (RFC 7517 §5)  -  by \u003ca href=\"https://github.com/RalphBragg\"\u003e\u003ccode\u003e@​RalphBragg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003eauthlib/joserfc#103\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd363\"\u003e\u003c!-- raw HTML omitted --\u003e(4dcd3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/joserfc/blob/main/docs/changelog.rst\"\u003ejoserfc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on August 29, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJWK\u003c/strong\u003e: Ignore keys with unknown \u003ccode\u003ekty\u003c/code\u003e values when importing a key set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJWE\u003c/strong\u003e: Add \u003ccode\u003emax_recipients\u003c/code\u003e to \u003ccode\u003eJWERegistry\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/joserfc/commit/357c319119773c021bc8da433bdf31e42f77974b\"\u003e\u003ccode\u003e357c319\u003c/code\u003e\u003c/a\u003e chore: release 1.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df6c7609277e741069d3733e43996c1cd17\"\u003e\u003ccode\u003ed6dc8df\u003c/code\u003e\u003c/a\u003e feat: add max_recipients on JWERegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/26a10275e88276184f91ae2a6409647bfac7fea5\"\u003e\u003ccode\u003e26a1027\u003c/code\u003e\u003c/a\u003e docs: update sponsors link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd3635c65298d26869bac382aaf1435def68e1\"\u003e\u003ccode\u003e4dcd363\u003c/code\u003e\u003c/a\u003e fix: ignore unknown kty in KeySet.import_key_set (RFC 7517 §5) (\u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.25.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose measured duration on Timer context manager by \u003ca href=\"https://github.com/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse specific exception for duplicate timeseries by \u003ca href=\"https://github.com/kajinamit\"\u003e\u003ccode\u003e@​kajinamit\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1074\"\u003eprometheus/client_python#1074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake clear() a no-op for label-less metrics (fixes \u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/707\"\u003e#707\u003c/a\u003e) by \u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1184\"\u003eprometheus/client_python#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse object instead of Any for labels() parameters by \u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TLS version parameters for start_wsgi_server by \u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Enum arguments before registering the collector by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not emit a leading zero in floatToGoString exponents \u0026gt;= 10 by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1190\"\u003eprometheus/client_python#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make test suite pass on Windows and Python 3.12+ by \u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse the native histogram sum as a float by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1192\"\u003eprometheus/client_python#1192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove nameless collectors from the registry on unregister by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1191\"\u003eprometheus/client_python#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix operator precedence allowing exemplars on any metric type by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1188\"\u003eprometheus/client_python#1188\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/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1183\"\u003eprometheus/client_python#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.25.0...v0.26.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/prometheus/client_python/commit/9b6b971f903e7a08f88da5a95048b7a2a28f55a5\"\u003e\u003ccode\u003e9b6b971\u003c/code\u003e\u003c/a\u003e Release v0.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb072c2d312bd55cce11f27e7efbc1b0104e2a56\"\u003e\u003ccode\u003efb072c2\u003c/code\u003e\u003c/a\u003e Fix operator precedence allowing exemplars on any metric type (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1188\"\u003e#1188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6e22fb551bdc9b4d81e73791dc1644cca2221bb1\"\u003e\u003ccode\u003e6e22fb5\u003c/code\u003e\u003c/a\u003e Remove nameless collectors from the registry on unregister (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/5b094790a85d8d024b442c7adea9b0ca5ccd8335\"\u003e\u003ccode\u003e5b09479\u003c/code\u003e\u003c/a\u003e Parse the native histogram sum as a float (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/769b4150e0970f664095cba30e872dbac45ba9b0\"\u003e\u003ccode\u003e769b415\u003c/code\u003e\u003c/a\u003e fix: make test suite pass on Windows and Python 3.12+ (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d0b497ffe069865537e55af52cb00c329d58a6f0\"\u003e\u003ccode\u003ed0b497f\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1195\"\u003e#1195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/75603d7871d6343ca3118134613ea07fc06205ee\"\u003e\u003ccode\u003e75603d7\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1194\"\u003e#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb2351fe0463581b85ac38f7fc870f2c564b6795\"\u003e\u003ccode\u003efb2351f\u003c/code\u003e\u003c/a\u003e Do not emit a leading zero in floatToGoString exponents \u0026gt;= 10 (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1190\"\u003e#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a39a697c805576781da71f70d1aa78c972ba9288\"\u003e\u003ccode\u003ea39a697\u003c/code\u003e\u003c/a\u003e Validate Enum arguments before registering the collector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a96f6f4bc00eeaa97827b8d49be8ce9c434b5a27\"\u003e\u003ccode\u003ea96f6f4\u003c/code\u003e\u003c/a\u003e Add TLS version parameters for start_wsgi_server (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.6 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\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/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.6...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ctranslate2` from 4.8.1 to 4.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases\"\u003ectranslate2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.8.2\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://github.com/Anai-Guo\"\u003e\u003ccode\u003e@​Anai-Guo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix out-of-bounds reads in StorageView index validation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2073\"\u003e#2073\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Nathan Keys (Halo Forge Labs)\u003c/li\u003e\n\u003cli\u003eUpdate cxxopts to v3.3.1 for GCC 15 compatibility (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2084\"\u003e#2084\u003c/a\u003e) by \u003ca href=\"https://github.com/bekard\"\u003e\u003ccode\u003e@​bekard\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate model variable sizes before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2091\"\u003e#2091\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Hyeonbell\u003c/li\u003e\n\u003cli\u003eCheck StorageView reserve byte size before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2094\"\u003e#2094\u003c/a\u003e) by \u003ca href=\"https://github.com/infinityscroll\"\u003e\u003ccode\u003e@​infinityscroll\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the runtime dependency on setuptools (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2096\"\u003e#2096\u003c/a\u003e) by \u003ca href=\"https://github.com/Ravencentric\"\u003e\u003ccode\u003e@​Ravencentric\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/blob/master/CHANGELOG.md\"\u003ectranslate2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/OpenNM...\n\n_Description has been truncated_","html_url":"https://github.com/attevon-llc/OpenTranscribe/pull/924","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/attevon-llc%2FOpenTranscribe/issues/924","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/924/packages"},{"uuid":"5407147813","node_id":"PR_kwDOOsXHvc8AAAABC7VkQg","number":902,"state":"closed","title":"chore(deps): bump the backend group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-12T11:39:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-10T02:51:42.000Z","updated_at":"2026-09-12T11:39:48.000Z","time_to_close":204484,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend","update_count":37,"packages":[{"name":"langchain-community","old_version":"0.3.31","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"sentence-transformers","old_version":"5.7.0","new_version":"6.0.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.3","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"websockets","old_version":"17.0.1","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"alembic","old_version":"1.19.1","new_version":"1.19.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"ctranslate2","old_version":"4.8.1","new_version":"4.8.2","repository_url":"https://github.com/OpenNMT/CTranslate2"},{"name":"onnxruntime","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"yt-dlp","old_version":"2026.7.4","new_version":"2026.8.19","repository_url":"https://github.com/yt-dlp/yt-dlp"},{"name":"deepgram-sdk","old_version":"7.7.0","new_version":"7.8.1","repository_url":"https://github.com/deepgram/deepgram-python-sdk"},{"name":"assemblyai","old_version":"1.0.0","new_version":"1.3.0","repository_url":"https://github.com/AssemblyAI/assemblyai-python-sdk"},{"name":"azure-cognitiveservices-speech","old_version":"1.51.1","new_version":"1.51.2"},{"name":"boto3","old_version":"1.43.74","new_version":"1.43.89","repository_url":"https://github.com/boto/boto3"},{"name":"openai","old_version":"3.3.0","new_version":"3.8.0","repository_url":"https://github.com/openai/openai-python"},{"name":"presidio-anonymizer","old_version":"2.2.362","new_version":"2.2.364","repository_url":"https://github.com/data-privacy-stack/presidio"},{"name":"msal","old_version":"1.37.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"onnxruntime-gpu","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"cuda-pathfinder","old_version":"1.6.1","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"botocore","old_version":"1.43.75","new_version":"1.43.89","repository_url":"https://github.com/boto/botocore"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"google-api-core","old_version":"2.35.0","new_version":"2.36.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.57.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"import-linter","old_version":"2.13","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend group with 37 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.31` | `0.4.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.7.0` | `6.0.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.3` | `0.52.4` |\n| [websockets](https://github.com/python-websockets/websockets) | `17.0.1` | `17.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.1` | `1.19.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [ctranslate2](https://github.com/OpenNMT/CTranslate2) | `4.8.1` | `4.8.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | `2026.7.4` | `2026.8.19` |\n| [deepgram-sdk](https://github.com/deepgram/deepgram-python-sdk) | `7.7.0` | `7.8.1` |\n| [assemblyai](https://github.com/AssemblyAI/assemblyai-python-sdk) | `1.0.0` | `1.3.0` |\n| azure-cognitiveservices-speech | `1.51.1` | `1.51.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.74` | `1.43.89` |\n| [openai](https://github.com/openai/openai-python) | `3.3.0` | `3.8.0` |\n| [presidio-anonymizer](https://github.com/data-privacy-stack/presidio) | `2.2.362` | `2.2.364` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.37.0` | `1.38.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.5` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.6.1` | `1.8.1` |\n| [botocore](https://github.com/boto/botocore) | `1.43.75` | `1.43.89` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.35.0` | `2.36.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.57.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.13` | `2.15` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n\n\nUpdates `langchain-community` from 0.3.31 to 0.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-community==0.4.2\u003c/h2\u003e\n\u003ch2\u003eSunsetting langchain-community\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003elangchain-community is being sunset\u003c/strong\u003e. See \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/674\"\u003elangchain-ai/langchain-community#674\u003c/a\u003e for details and guidance. Thank you to everyone who has contributed integrations, fixes, reviews, and maintenance over the years.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: modernize infra by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/402\"\u003elangchain-ai/langchain-community#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PMID from PubMedAPIWrapper utility by \u003ca href=\"https://github.com/davale88\"\u003e\u003ccode\u003e@​davale88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/43\"\u003elangchain-ai/langchain-community#43\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egitlab api wrapper[patch]: fix create_file eats the first letter by \u003ca href=\"https://github.com/martra\"\u003e\u003ccode\u003e@​martra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/153\"\u003elangchain-ai/langchain-community#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate lancedb.py by \u003ca href=\"https://github.com/AmirBraham\"\u003e\u003ccode\u003e@​AmirBraham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/108\"\u003elangchain-ai/langchain-community#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrecting OpenSearchVectorStore documentation for AsyncClient import problem by \u003ca href=\"https://github.com/georg-wind\"\u003e\u003ccode\u003e@​georg-wind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/252\"\u003elangchain-ai/langchain-community#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test_duckduckdgo_search_api.py import by \u003ca href=\"https://github.com/theprashasst\"\u003e\u003ccode\u003e@​theprashasst\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/248\"\u003elangchain-ai/langchain-community#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typos. by \u003ca href=\"https://github.com/oumizx\"\u003e\u003ccode\u003e@​oumizx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/277\"\u003elangchain-ai/langchain-community#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect misleading CosmosDB connection string validation error message by \u003ca href=\"https://github.com/lasagna0\"\u003e\u003ccode\u003e@​lasagna0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/315\"\u003elangchain-ai/langchain-community#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix score threshold is zero scenario by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/398\"\u003elangchain-ai/langchain-community#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link of partition docs of \u003ccode\u003eunstructured\u003c/code\u003e package by \u003ca href=\"https://github.com/mhihasan\"\u003e\u003ccode\u003e@​mhihasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/354\"\u003elangchain-ai/langchain-community#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(loader): fix TextLoader doc string indentation by \u003ca href=\"https://github.com/vneogi199\"\u003e\u003ccode\u003e@​vneogi199\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/360\"\u003elangchain-ai/langchain-community#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed Syntax Error in Trino dialect by \u003ca href=\"https://github.com/saathwik-tk\"\u003e\u003ccode\u003e@​saathwik-tk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/399\"\u003elangchain-ai/langchain-community#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: message line regex by \u003ca href=\"https://github.com/martinschaer\"\u003e\u003ccode\u003e@​martinschaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/196\"\u003elangchain-ai/langchain-community#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: remove integration as the product has changed by \u003ca href=\"https://github.com/Xe\"\u003e\u003ccode\u003e@​Xe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/159\"\u003elangchain-ai/langchain-community#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate sql_database.py to support materialized view by \u003ca href=\"https://github.com/groundrace\"\u003e\u003ccode\u003e@​groundrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/281\"\u003elangchain-ai/langchain-community#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRSS Feed Document Loader Publish Date Fallback by \u003ca href=\"https://github.com/mariomeyer\"\u003e\u003ccode\u003e@​mariomeyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/219\"\u003elangchain-ai/langchain-community#219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: lint by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/405\"\u003elangchain-ai/langchain-community#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): add auto-labelers by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/406\"\u003elangchain-ai/langchain-community#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cost by 1k tokens for sonnet 4.5 by \u003ca href=\"https://github.com/higorgardin\"\u003e\u003ccode\u003e@​higorgardin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/391\"\u003elangchain-ai/langchain-community#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Refactor query_builder to use limit method by \u003ca href=\"https://github.com/userNanni\"\u003e\u003ccode\u003e@​userNanni\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/377\"\u003elangchain-ai/langchain-community#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate document_loaders from rapidocr_onnxruntime to rapidocr by \u003ca href=\"https://github.com/athoik\"\u003e\u003ccode\u003e@​athoik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/375\"\u003elangchain-ai/langchain-community#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate Oracle AI Vector Search classes by \u003ca href=\"https://github.com/fileames\"\u003e\u003ccode\u003e@​fileames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/283\"\u003elangchain-ai/langchain-community#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add default factory to api_wrapper of GoogleSerperRun by \u003ca href=\"https://github.com/duccm94\"\u003e\u003ccode\u003e@​duccm94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/157\"\u003elangchain-ai/langchain-community#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[fix]: support spark x1 reasoning model's 'reasoning_content' field. by \u003ca href=\"https://github.com/vsxd\"\u003e\u003ccode\u003e@​vsxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/251\"\u003elangchain-ai/langchain-community#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use uuid1() instead of uuid4() for Cassandra TIMEUUID columns by \u003ca href=\"https://github.com/woohhan\"\u003e\u003ccode\u003e@​woohhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/225\"\u003elangchain-ai/langchain-community#225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImport chat_models from langchain_community in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/198\"\u003elangchain-ai/langchain-community#198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Retrieve all Slack channels visible to the client by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/146\"\u003elangchain-ai/langchain-community#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: fix elevenlabs \u0026gt;=2.3.0 api change by \u003ca href=\"https://github.com/ebwood\"\u003e\u003ccode\u003e@​ebwood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/102\"\u003elangchain-ai/langchain-community#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: write image data to buffer before checking for empty BytesIO in image extraction by \u003ca href=\"https://github.com/mighoocool\"\u003e\u003ccode\u003e@​mighoocool\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/193\"\u003elangchain-ai/langchain-community#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealign SupabaseVectorStore ID handling with JS lib by \u003ca href=\"https://github.com/taishikato\"\u003e\u003ccode\u003e@​taishikato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/137\"\u003elangchain-ai/langchain-community#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(document_loaders): yt api as per latest version by \u003ca href=\"https://github.com/lokeshparab\"\u003e\u003ccode\u003e@​lokeshparab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/206\"\u003elangchain-ai/langchain-community#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add comprehensive routing support to OpenSearchVectorSearch by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/349\"\u003elangchain-ai/langchain-community#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(chat_models): parallel tool calls in ChatTongyi when incremental streaming output is enabled. by \u003ca href=\"https://github.com/TBice123123\"\u003e\u003ccode\u003e@​TBice123123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/111\"\u003elangchain-ai/langchain-community#111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(infra): remove unused \u003ccode\u003edataclasses-json\u003c/code\u003e dependency by \u003ca href=\"https://github.com/noirbee\"\u003e\u003ccode\u003e@​noirbee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/270\"\u003elangchain-ai/langchain-community#270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/408\"\u003elangchain-ai/langchain-community#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(agent_toolkits): Make \u003ccode\u003eWebClient\u003c/code\u003e injectable for Slack toolkit by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/145\"\u003elangchain-ai/langchain-community#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(document_loaders): add flexible timeout to \u003ccode\u003ePlaywrightURLLoader\u003c/code\u003e by \u003ca href=\"https://github.com/parthsompura\"\u003e\u003ccode\u003e@​parthsompura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/104\"\u003elangchain-ai/langchain-community#104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SSL verification option to recursive link fetching by \u003ca href=\"https://github.com/rajasblack\"\u003e\u003ccode\u003e@​rajasblack\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/46\"\u003elangchain-ai/langchain-community#46\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: some cleanup by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/412\"\u003elangchain-ai/langchain-community#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(azure): Fix key assignment logic by \u003ca href=\"https://github.com/yashovardhan99\"\u003e\u003ccode\u003e@​yashovardhan99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/418\"\u003elangchain-ai/langchain-community#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(vectorstores): add routing support for hybrid search by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/416\"\u003elangchain-ai/langchain-community#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enit: use american english by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/419\"\u003elangchain-ai/langchain-community#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): clarify allowed scopes section in PR linting workflow by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/420\"\u003elangchain-ai/langchain-community#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/422\"\u003elangchain-ai/langchain-community#422\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/langchain-ai/langchain-community/commit/7c10a5fa327f6aaaf7c932822a9e5d144891406e\"\u003e\u003ccode\u003e7c10a5f\u003c/code\u003e\u003c/a\u003e fix: bump deps and fix test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/0d3630d463521db776ef9f4d2f7d8eceab3d1fcc\"\u003e\u003ccode\u003e0d3630d\u003c/code\u003e\u003c/a\u003e fix: sunset package (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/3ade247a075de8a20b95bb48d897a067ee1fecb5\"\u003e\u003ccode\u003e3ade247\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/27c60bad4c17b0460d174abac0fb5d1ade0bfd51\"\u003e\u003ccode\u003e27c60ba\u003c/code\u003e\u003c/a\u003e chore(deps): bump langsmith from 0.7.31 to 0.8.4 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/666\"\u003e#666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/2e8d934934f79923c9349ca67ed21de4dc268033\"\u003e\u003ccode\u003e2e8d934\u003c/code\u003e\u003c/a\u003e chore(deps): bump jupyter-server from 2.17.0 to 2.18.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/f0b16c2a40cca43cc2aac13880d56d3f42ea89b1\"\u003e\u003ccode\u003ef0b16c2\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.2.0 to 3.2.1 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/bfbfe3f1822dfc0acc2a2999108ac7c721f4f8e2\"\u003e\u003ccode\u003ebfbfe3f\u003c/code\u003e\u003c/a\u003e chore(deps): update scikit-learn requirement from \u0026lt;2,\u0026gt;=1.2.2 to \u0026gt;=1.7.2,\u0026lt;2 in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/4cbef29068509f90e8284a56a51b4ec3c1fd3cd5\"\u003e\u003ccode\u003e4cbef29\u003c/code\u003e\u003c/a\u003e chore(deps): update hdbcli requirement from \u0026lt;3,\u0026gt;=2.19.21 to \u0026gt;=2.28.20,\u0026lt;3 in /...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/22377e1e92dfdda5424f4eba6d70e511075f8226\"\u003e\u003ccode\u003e22377e1\u003c/code\u003e\u003c/a\u003e chore(deps): update keybert requirement from \u0026gt;=0.8.5 to \u0026gt;=0.9.0 in /libs/comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/c4dbaa2174bf743e2b6f6a74684c62786ecd6334\"\u003e\u003ccode\u003ec4dbaa2\u003c/code\u003e\u003c/a\u003e chore(deps): bump notebook from 7.5.4 to 7.5.6 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.31...libs/community/v0.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.7.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.1 - Restore the PyLate prefix on prompted checkpoints, 80 documented multi-vector models\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a multi-vector loading bug: PyLate checkpoints that carry both a \u003ccode\u003e[Q]\u003c/code\u003e/\u003ccode\u003e[D]\u003c/code\u003e prefix and a text prompt lost the prefix, so they were encoded without a marker they were trained with. It also grows the documented multi-vector model tables from 51 checkpoints to 80.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==6.0.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==6.0.1\npip install sentence-transformers[onnx-gpu]==6.0.1\npip install sentence-transformers[onnx]==6.0.1\npip install sentence-transformers[openvino]==6.0.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==6.0.1\npip install sentence-transformers[audio]==6.0.1\npip install sentence-transformers[video]==6.0.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==6.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eCompose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003ePyLate supports a prefix as well as prompt text, and Sentence Transformers assumed that these were mutually exclusive. However, the following three checkpoints carry both a prefix and a prompt, and were trained with the prefix prepended to the prompt text:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero\"\u003e\u003ccode\u003elightonai/ColBERT-Zero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-unsupervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-unsupervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-supervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-supervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePyLate trained these checkpoints on \u003ccode\u003e[CLS] [Q] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] [D] search_document: ...\u003c/code\u003e, but Sentence Transformers dropped the prefix and encoded them as \u003ccode\u003e[CLS] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] search_document: ...\u003c/code\u003e. After the fix, the performance of the \u003ccode\u003eColBERT-Zero\u003c/code\u003e model improved from 0.6569 NDCG@10 to 0.6824 on the NanoBEIR benchmark. To my knowledge, only these 3 checkpoints used both a prefix and a prompt, so this is the only case where the bug would have affected you.\u003c/p\u003e\n\u003ch2\u003eForward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eRouter.forward\u003c/code\u003e has always passed \u003ccode\u003etask\u003c/code\u003e down to the routed module, but \u003ccode\u003eRouter.preprocess\u003c/code\u003e did not, so anything a module does with the task at preprocessing time did nothing behind a \u003ccode\u003eRouter\u003c/code\u003e: \u003ccode\u003equery_length\u003c/code\u003e and \u003ccode\u003edocument_length\u003c/code\u003e caps, \u003ccode\u003equery_expansion\u003c/code\u003e, and the chat-template \u003ccode\u003etask\u003c/code\u003e keyword. No released checkpoint combines a \u003ccode\u003eRouter\u003c/code\u003e with those settings, so this is a latent bug rather than one you are likely to have hit. It would have affected anyone building such a model themselves, with no error to indicate it.\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe multi-vector \u003ca href=\"https://sbert.net/docs/multi_vector_encoder/pretrained_models.html\"\u003epretrained models tables\u003c/a\u003e grew from 29 text and 22 visual document retrieval checkpoints to 38 and 42 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3963\"\u003e#3963\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e), with \u003ccode\u003erevision\u003c/code\u003e and \u003ccode\u003etrust_remote_code\u003c/code\u003e notes refreshed as upstream pull requests merged (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDocumented which Hub tag to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e), and linked the Multi-Vector Encoder blogposts from the docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded MultiVectorEncoder to the Agent Skill README and refreshed the SauerkrautLM scores (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3955\"\u003e#3955\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCorrected the minimum versions in the README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3952\"\u003e#3952\u003c/a\u003e). It still recommended PyTorch 1.11.0+ and \u003ccode\u003etransformers\u003c/code\u003e v4.41.0+, where v6.0 requires PyTorch 2.2+ and \u003ccode\u003etransformers\u003c/code\u003e v5.0+. This is the text rendered as the PyPI project description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM scores by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3955\"\u003ehuggingface/sentence-transformers#3955\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the README dependency versions by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3952\"\u003ehuggingface/sentence-transformers#3952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add more MultiVectorEncoder models to the pretrained models tables by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3963\"\u003ehuggingface/sentence-transformers#3963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify which Hub tags to filter on for each model type by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3964\"\u003ehuggingface/sentence-transformers#3964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Link the Multi-Vector Encoder blogposts by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3966\"\u003ehuggingface/sentence-transformers#3966\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/huggingface/sentence-transformers/commit/b0acd1a4d22ba2bc10072868ddea7612561c9424\"\u003e\u003ccode\u003eb0acd1a\u003c/code\u003e\u003c/a\u003e Update README installation versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9b415ac93b586400258ac9876c81ce28c36547ba\"\u003e\u003ccode\u003e9b415ac\u003c/code\u003e\u003c/a\u003e Release v6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cc0669cea57c834c651f001e3cb07b6fc847f147\"\u003e\u003ccode\u003ecc0669c\u003c/code\u003e\u003c/a\u003e Add/update revisions for pretrained MVE models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f8390f466c9d127cd51dd41805557adaab09d472\"\u003e\u003ccode\u003ef8390f4\u003c/code\u003e\u003c/a\u003e [docs] Refresh the MultiVectorEncoder pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4b517229c1dc17ead6c2a61b3d248f62fe4738eb\"\u003e\u003ccode\u003e4b51722\u003c/code\u003e\u003c/a\u003e [fix] Compose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/e99c4a9f2422c285cd2d286aeda1af237eadd01d\"\u003e\u003ccode\u003ee99c4a9\u003c/code\u003e\u003c/a\u003e [fix] Forward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/5d2ec939e960d85afe638bba87523926c63ab263\"\u003e\u003ccode\u003e5d2ec93\u003c/code\u003e\u003c/a\u003e [docs] Link the Multi-Vector Encoder blogposts (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9c5de2aa8432d7d150e35a7cd4383a39a13e307b\"\u003e\u003ccode\u003e9c5de2a\u003c/code\u003e\u003c/a\u003e [docs] Clarify which Hub tags to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/83680bdf460229a41dd3bf07ed80b5a65d29a430\"\u003e\u003ccode\u003e83680bd\u003c/code\u003e\u003c/a\u003e [docs] Add more MultiVectorEncoder models to the pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1a43278abe510ca9011fdd0e698c58470ef830eb\"\u003e\u003ccode\u003e1a43278\u003c/code\u003e\u003c/a\u003e docs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.7.0...v6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.3 to 0.141.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.141.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for background tasks and headers from dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16105\"\u003e#16105\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📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16104\"\u003e#16104\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.141.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more convenient with \u003ccode\u003efastapi dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16102\"\u003e#16102\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.140.13\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003estatus_code\u003c/code\u003e being ignored for SSE and JSONL streaming endpoints. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15937\"\u003e#15937\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix \u003ccode\u003eformat_sse_event\u003c/code\u003e docstring rendering of \u003ccode\u003e\\n\\n\u003c/code\u003e terminator. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15613\"\u003e#15613\u003c/a\u003e by \u003ca href=\"https://github.com/AshNicolus\"\u003e\u003ccode\u003e@​AshNicolus\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add API reference page for fastapi.sse. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15930\"\u003e#15930\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.12\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix line splitting in \u003ccode\u003eformat_sse_event\u003c/code\u003e to comply with SSE spec. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15515\"\u003e#15515\u003c/a\u003e by \u003ca href=\"https://github.com/Zawwarsami16\"\u003e\u003ccode\u003e@​Zawwarsami16\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.11\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eresponse_model_*\u003c/code\u003e params ignored for non-generator endpoints with \u003ccode\u003eIterable[..]\u003c/code\u003e return type. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15093\"\u003e#15093\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling sequences with nested Annotated types. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14874\"\u003e#14874\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Accept any base test failure as regression. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16092\"\u003e#16092\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🐛 Preserve pytest exit code in regression check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16091\"\u003e#16091\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✅ Test PR regressions against base code. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16090\"\u003e#16090\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.140.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eexclude_defaults\u003c/code\u003e not propagated to dict keys and values in \u003ccode\u003ejsonable_encoder\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16043\"\u003e#16043\u003c/a\u003e by \u003ca href=\"https://github.com/MBGrao\"\u003e\u003ccode\u003e@​MBGrao\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/95f8322ee1dcda7ceace7b1c4f6c9915b36d748f\"\u003e\u003ccode\u003e95f8322\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16106\"\u003e#16106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f137944c435cff4e4b30ea7d12855ea88ddb868c\"\u003e\u003ccode\u003ef137944\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d62354434b2e508fe89024213b220ca8e67dea5e\"\u003e\u003ccode\u003ed623544\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for background tasks and headers from dependencies in `app.fron...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d211b9c1009d577f39fa2b19b10d9a93a72a0ed\"\u003e\u003ccode\u003e1d211b9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a1f8768411e62093e70ce142ea10863a485643c\"\u003e\u003ccode\u003e8a1f876\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16104\"\u003e#16104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7e7b651d6946c07cc9f675f39c9501d08319e57\"\u003e\u003ccode\u003ec7e7b65\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16103\"\u003e#16103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6bceb84053eb2405e9c000aad30ea13367b5ee32\"\u003e\u003ccode\u003e6bceb84\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5429fed84e84e32672c25a953eca3429b841ce90\"\u003e\u003ccode\u003e5429fed\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more conven...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/628663f4f899c465da423bce681c7adf9a218948\"\u003e\u003ccode\u003e628663f\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.140.13 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16096\"\u003e#16096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0b54fd00273019034dd30b120ac842e65d80690e\"\u003e\u003ccode\u003e0b54fd0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.3...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.3 to 0.52.4\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.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\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.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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/8988c23704fc373c9206cca53ec57dd8ad7f44a5\"\u003e\u003ccode\u003e8988c23\u003c/code\u003e\u003c/a\u003e Stabilize macOS Python 3.13 signal shutdown tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/898ddca9254b53c5bf7a6ee509756704caaa949f\"\u003e\u003ccode\u003e898ddca\u003c/code\u003e\u003c/a\u003e Update PyPI publish action to version 1.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3869f8aac2bdd040fa3fbe564e1dad67e2637641\"\u003e\u003ccode\u003e3869f8a\u003c/code\u003e\u003c/a\u003e Restore Mermaid diagram rendering (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/64148a9c574e1eb87d3d09b3ce4c256606f8d973\"\u003e\u003ccode\u003e64148a9\u003c/code\u003e\u003c/a\u003e Version 0.52.4 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3079\"\u003e#3079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9e9e5691bd14d5c4cd66d9bd76c7730bc48461a2\"\u003e\u003ccode\u003e9e9e569\u003c/code\u003e\u003c/a\u003e docs: correct release example PR number (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b783dacab50b9d6767b0cf65826b2dc3aae21909\"\u003e\u003ccode\u003eb783dac\u003c/code\u003e\u003c/a\u003e Remove duplicate Date header from SansIO WebSocket handshakes (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/27019b2a4b1fa6d68a289fcf7d738fbdc6ee4e5d\"\u003e\u003ccode\u003e27019b2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1b6427311bb84a15addee688f6d41d96e33f8b0a\"\u003e\u003ccode\u003e1b64273\u003c/code\u003e\u003c/a\u003e Fix a typo in index.md (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `websockets` from 17.0.1 to 17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/e87ea9be0373edd5065b5e94dfa714cfde23023b\"\u003e\u003ccode\u003ee87ea9b\u003c/code\u003e\u003c/a\u003e Release version 17.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/caf68ab866350ab43305bc0a2ce28e4c845b90ab\"\u003e\u003ccode\u003ecaf68ab\u003c/code\u003e\u003c/a\u003e Minor whitespace normalization.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/f4c73b76c74044c53f700360792448ee0328983b\"\u003e\u003ccode\u003ef4c73b7\u003c/code\u003e\u003c/a\u003e Accept pathlib.Path objects in path arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/b1e4a144d1824ec4dbd2416489691bbe212a1be8\"\u003e\u003ccode\u003eb1e4a14\u003c/code\u003e\u003c/a\u003e Clarify when the new asyncio implementation became the default.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c7cc7ed3508c3ce082801994e7587ac694758102\"\u003e\u003ccode\u003ec7cc7ed\u003c/code\u003e\u003c/a\u003e Move process_exception to the Sans-I/O layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/2543503f5e6633e79afb20992511b12ef2b7d663\"\u003e\u003ccode\u003e2543503\u003c/code\u003e\u003c/a\u003e Support reconnecting in the threading implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1c8fb090d966c358dcb4069b8c71c13969d1cec0\"\u003e\u003ccode\u003e1c8fb09\u003c/code\u003e\u003c/a\u003e Follow redirects in the sync implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1f7f0e537233ac82e4ca51921678963c696c8c08\"\u003e\u003ccode\u003e1f7f0e5\u003c/code\u003e\u003c/a\u003e Deprecate calling connect() directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c06d5c566b04113405272230856de669e8534e74\"\u003e\u003ccode\u003ec06d5c5\u003c/code\u003e\u003c/a\u003e Support overriding host/post in the sync client.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/885e69bc1a218566bb0ad653c2c326e80245ab6a\"\u003e\u003ccode\u003e885e69b\u003c/code\u003e\u003c/a\u003e Add tests for connecting without a context manager.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/17.0.1...17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.19.1 to 1.19.2\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.19.2\u003c/h1\u003e\n\u003cp\u003eReleased: September 4, 2026\u003c/p\u003e\n\u003ch2\u003echanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[changed] [autogenerate]\u003c/strong\u003e The autogenerate plugin for CHECK constraint detection by name, added in\n1.19.0. for \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/508\"\u003e#508\u003c/a\u003e, is no longer enabled by default.  It has been\nrenamed from \u003ccode\u003ealembic.autogenerate.checkconstraint_byname\u003c/code\u003e to\n\u003ccode\u003ealembic.ext.checkconstraint_byname\u003c/code\u003e and no longer matches on the\n\u003ccode\u003e\u0026quot;alembic.autogenerate.*\u0026quot;\u003c/code\u003e wildcard, which remains the default plugin\nspecification.  The previous name will still function as well if placed in\nthe plugins list explicitly,  both to enable the plugin and within a\n\u003ccode\u003e\u0026quot;~\u0026quot;\u003c/code\u003e exclusion, so that an \u003ccode\u003eenv.py\u003c/code\u003e written against 1.19.0 or 1.19.1\nrequires no change.\u003c/p\u003e\n\u003cp\u003eThe plugin is now recommended only for schemas that ensure the naming of\nall constraints using a client side naming convention, otherwise there's a\npersistent risk of false positives. See\n\u003ccode\u003eautogenerate_check_constraints\u003c/code\u003e for background on things to be aware\nof when using this plugin.\u003c/p\u003e\n\u003cp\u003eAs part of this change \u0026quot;type bound\u0026quot; CHECK constraints, which include\nconstraints generated for the \u003ccode\u003eBoolean\u003c/code\u003e and \u003ccode\u003eEnum\u003c/code\u003e datatypes when the\n\u003ccode\u003ecreate_constraint\u003c/code\u003e parameter is set to True, are no longer ignored in\nthe metadata side, so that normal name-based matching can occur for\nthese constraints.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1859\"\u003e#1859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate] [batch]\u003c/strong\u003e The target of a \u003ccode\u003e~sqlalchemy.schema.ForeignKey\u003c/code\u003e is now located\nusing the \u003ccode\u003eForeignKey.target_tokens\u003c/code\u003e and\n\u003ccode\u003eForeignKey.target_table_key\u003c/code\u003e accessors added in SQLAlchemy 2.1, rather\nthan by splitting the dotted string form of that target on \u003ccode\u003e\u0026quot;.\u0026quot;\u003c/code\u003e.  As a\ndot inside a schema, table or column name cannot be told apart from the\nseparator between those names, a foreign key whose target name contained\na dot was previously mis-parsed by autogenerate rendering as well as by\nbatch migrations.  The dotted string continues to be split when running\nagainst SQLAlchemy 2.0, where these accessors are not present.  Thanks to\nGyanu Mayank for the initial pull request.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1860\"\u003e#1860\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.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\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\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joserfc` from 1.7.4 to 1.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/joserfc/releases\"\u003ejoserfc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd max_recipients on JWERegistry  -  by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df\"\u003e\u003c!-- raw HTML omitted --\u003e(d6dc8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore unknown kty in KeySet.import_key_set (RFC 7517 §5)  -  by \u003ca href=\"https://github.com/RalphBragg\"\u003e\u003ccode\u003e@​RalphBragg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003eauthlib/joserfc#103\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd363\"\u003e\u003c!-- raw HTML omitted --\u003e(4dcd3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/joserfc/blob/main/docs/changelog.rst\"\u003ejoserfc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on August 29, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJWK\u003c/strong\u003e: Ignore keys with unknown \u003ccode\u003ekty\u003c/code\u003e values when importing a key set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJWE\u003c/strong\u003e: Add \u003ccode\u003emax_recipients\u003c/code\u003e to \u003ccode\u003eJWERegistry\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/joserfc/commit/357c319119773c021bc8da433bdf31e42f77974b\"\u003e\u003ccode\u003e357c319\u003c/code\u003e\u003c/a\u003e chore: release 1.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df6c7609277e741069d3733e43996c1cd17\"\u003e\u003ccode\u003ed6dc8df\u003c/code\u003e\u003c/a\u003e feat: add max_recipients on JWERegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/26a10275e88276184f91ae2a6409647bfac7fea5\"\u003e\u003ccode\u003e26a1027\u003c/code\u003e\u003c/a\u003e docs: update sponsors link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd3635c65298d26869bac382aaf1435def68e1\"\u003e\u003ccode\u003e4dcd363\u003c/code\u003e\u003c/a\u003e fix: ignore unknown kty in KeySet.import_key_set (RFC 7517 §5) (\u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.25.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose measured duration on Timer context manager by \u003ca href=\"https://github.com/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse specific exception for duplicate timeseries by \u003ca href=\"https://github.com/kajinamit\"\u003e\u003ccode\u003e@​kajinamit\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1074\"\u003eprometheus/client_python#1074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake clear() a no-op for label-less metrics (fixes \u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/707\"\u003e#707\u003c/a\u003e) by \u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1184\"\u003eprometheus/client_python#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse object instead of Any for labels() parameters by \u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TLS version parameters for start_wsgi_server by \u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Enum arguments before registering the collector by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not emit a leading zero in floatToGoString exponents \u0026gt;= 10 by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1190\"\u003eprometheus/client_python#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make test suite pass on Windows and Python 3.12+ by \u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse the native histogram sum as a float by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1192\"\u003eprometheus/client_python#1192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove nameless collectors from the registry on unregister by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1191\"\u003eprometheus/client_python#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix operator precedence allowing exemplars on any metric type by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1188\"\u003eprometheus/client_python#1188\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/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1183\"\u003eprometheus/client_python#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.25.0...v0.26.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/prometheus/client_python/commit/9b6b971f903e7a08f88da5a95048b7a2a28f55a5\"\u003e\u003ccode\u003e9b6b971\u003c/code\u003e\u003c/a\u003e Release v0.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb072c2d312bd55cce11f27e7efbc1b0104e2a56\"\u003e\u003ccode\u003efb072c2\u003c/code\u003e\u003c/a\u003e Fix operator precedence allowing exemplars on any metric type (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1188\"\u003e#1188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6e22fb551bdc9b4d81e73791dc1644cca2221bb1\"\u003e\u003ccode\u003e6e22fb5\u003c/code\u003e\u003c/a\u003e Remove nameless collectors from the registry on unregister (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/5b094790a85d8d024b442c7adea9b0ca5ccd8335\"\u003e\u003ccode\u003e5b09479\u003c/code\u003e\u003c/a\u003e Parse the native histogram sum as a float (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/769b4150e0970f664095cba30e872dbac45ba9b0\"\u003e\u003ccode\u003e769b415\u003c/code\u003e\u003c/a\u003e fix: make test suite pass on Windows and Python 3.12+ (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d0b497ffe069865537e55af52cb00c329d58a6f0\"\u003e\u003ccode\u003ed0b497f\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1195\"\u003e#1195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/75603d7871d6343ca3118134613ea07fc06205ee\"\u003e\u003ccode\u003e75603d7\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1194\"\u003e#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb2351fe0463581b85ac38f7fc870f2c564b6795\"\u003e\u003ccode\u003efb2351f\u003c/code\u003e\u003c/a\u003e Do not emit a leading zero in floatToGoString exponents \u0026gt;= 10 (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1190\"\u003e#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a39a697c805576781da71f70d1aa78c972ba9288\"\u003e\u003ccode\u003ea39a697\u003c/code\u003e\u003c/a\u003e Validate Enum arguments before registering the collector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a96f6f4bc00eeaa97827b8d49be8ce9c434b5a27\"\u003e\u003ccode\u003ea96f6f4\u003c/code\u003e\u003c/a\u003e Add TLS version parameters for start_wsgi_server (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.6 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\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/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.6...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ctranslate2` from 4.8.1 to 4.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases\"\u003ectranslate2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.8.2\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://github.com/Anai-Guo\"\u003e\u003ccode\u003e@​Anai-Guo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix out-of-bounds reads in StorageView index validation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2073\"\u003e#2073\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Nathan Keys (Halo Forge Labs)\u003c/li\u003e\n\u003cli\u003eUpdate cxxopts to v3.3.1 for GCC 15 compatibility (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2084\"\u003e#2084\u003c/a\u003e) by \u003ca href=\"https://github.com/bekard\"\u003e\u003ccode\u003e@​bekard\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate model variable sizes before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2091\"\u003e#2091\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Hyeonbell\u003c/li\u003e\n\u003cli\u003eCheck StorageView reserve byte size before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2094\"\u003e#2094\u003c/a\u003e) by \u003ca href=\"https://github.com/infinityscroll\"\u003e\u003ccode\u003e@​infinityscroll\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the runtime dependency on setuptools (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2096\"\u003e#2096\u003c/a\u003e) by \u003ca href=\"https://github.com/Ravencentric\"\u003e\u003ccode\u003e@​Ravencentric\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/blob/master/CHANGELOG.md\"\u003ectranslate2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases/tag/v4.8.2\"\u003ev4.8.2\u003c/a\u003e (2026-08-31)\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://gith...\n\n_Description has been truncated_","html_url":"https://github.com/attevon-llc/OpenTranscribe/pull/902","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/attevon-llc%2FOpenTranscribe/issues/902","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/902/packages"},{"uuid":"5381886127","node_id":"PR_kwDOBBkQZs8AAAABCnCfKQ","number":4704,"state":"closed","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-12T19:37:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T04:07:45.000Z","updated_at":"2026-09-12T19:37:22.000Z","time_to_close":401375,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/aliavni/incubator-superset/pull/4704","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliavni%2Fincubator-superset/issues/4704","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4704/packages"},{"uuid":"5381618145","node_id":"PR_kwDOMkdPVc8AAAABCm0q0w","number":1001,"state":"closed","title":"Bump the minor-and-patch-updates group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-15T03:28:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T03:30:40.000Z","updated_at":"2026-09-15T03:28:56.000Z","time_to_close":604694,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch-updates","update_count":7,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.2","repository_url":"https://github.com/lxml/lxml"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"faker","old_version":"40.36.0","new_version":"40.37.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch-updates group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.3` |\n| [faker](https://github.com/joke2k/faker) | `40.36.0` | `40.37.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.5` |\n\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.1.1 to 6.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.2 (2026-08-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#526: Some build files were missing in the sdist.\nPatch by Nicola Soranzo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome minor corrections for error handling cases.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt with Cython 3.2.9.\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/lxml/lxml/commit/f2874e9008c83d2d26e0b7292772eb74d2b83ce3\"\u003e\u003ccode\u003ef2874e9\u003c/code\u003e\u003c/a\u003e Update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/687a295a4c19288b95ec1b74c31a620acaabdf9d\"\u003e\u003ccode\u003e687a295\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.8 from windows-arm builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/acadc56553ff74e6ea296158e118b08ac6ec9f4b\"\u003e\u003ccode\u003eacadc56\u003c/code\u003e\u003c/a\u003e Build: Remove outdated build target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/59f93eb420a988bc61e7c5b8f4d97869c0536be7\"\u003e\u003ccode\u003e59f93eb\u003c/code\u003e\u003c/a\u003e Build: Split old-Linux and other-Py3.8 builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/923df83ed6a40ca5aab267b1c3fe073ff13a00ab\"\u003e\u003ccode\u003e923df83\u003c/code\u003e\u003c/a\u003e Build: Fix manylinux2014 build.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/975cc83e4626117e36adb6d336ac9a6f6cc0ca42\"\u003e\u003ccode\u003e975cc83\u003c/code\u003e\u003c/a\u003e Build: Fix Px3.8 build setup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/09e5d3e968f380d7a790c2b47f59f7937e00942e\"\u003e\u003ccode\u003e09e5d3e\u003c/code\u003e\u003c/a\u003e Build: Fix cibuildwheel version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/998cf504a3b0da7f316861c5a552c5c16069d91f\"\u003e\u003ccode\u003e998cf50\u003c/code\u003e\u003c/a\u003e Build: Build Py3.8 wheels only once, not in every build job.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/55670370cd68117ff2b3b71e0f20a7f275d1baeb\"\u003e\u003ccode\u003e5567037\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.15 from 32bit builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/904db40b04ef590ae1ca8fc84be863fc0f8196dc\"\u003e\u003ccode\u003e904db40\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel to include Py3.15.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.1.1...lxml-6.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.7.19 to 2026.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.9.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer supports building for free-threaded Python 3.13.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer needs nor supports cpython-freethreading option.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated cibuildwheel.\nSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 611: Heap out-of-bounds write at compile time\nGit issue 612: count_one() size underflow through the stale required-string cache\nGit issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\nGit issue 614: build_GROUP() does not propagate the match direction\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.12\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 607: SIGSEGV: NULL pointer dereference in `basic_match()` when `(?R)`/`(?0)` recursion is used inside a fuzzy-matching quantifier\nGit issue 608: SIGSEGV: out-of-bounds read in `bytes1_char_at()` with `DOTALL` + a fuzzy constraint + `(?r)` reverse-direction matching\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eClarified that the POSIX flag makes it look for only the longest overall match.\n\u003cp\u003eGit issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threading-safe\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.6.28\u003c/p\u003e\n\u003cp\u003eGit issue 604: regex fails on free-threading python because setlocale is not thread-safe\u003c/p\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/57f366fdbd9b8346d3b1a95b99cd81a9e91db367\"\u003e\u003ccode\u003e57f366f\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer supports building for free-threaded Pyt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/a1d72bace2f7222e310b32c595771686a59d0388\"\u003e\u003ccode\u003ea1d72ba\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer needs nor supports cpython-freethreadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/c8d0aa48f52feb6512c3a3ac6e02f4c7ec6363e0\"\u003e\u003ccode\u003ec8d0aa4\u003c/code\u003e\u003c/a\u003e Updated cibuildwheel. Support Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b283bb2b038cef571bfe49b2a76415cf4005ddfc\"\u003e\u003ccode\u003eb283bb2\u003c/code\u003e\u003c/a\u003e Updated version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5268ae7bd178828d6b710125a8089e548ca51b61\"\u003e\u003ccode\u003e5268ae7\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/9398a6da5630aa9af67775e95802d2c5625606cd\"\u003e\u003ccode\u003e9398a6d\u003c/code\u003e\u003c/a\u003e Git issue 614: build_GROUP() does not propagate the match direction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b77694aec629ca66bfe416e5f83561d52bd08ae8\"\u003e\u003ccode\u003eb77694a\u003c/code\u003e\u003c/a\u003e Git issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/8244055e30dbfe4aa96ebff39ad78fabbcdf93a7\"\u003e\u003ccode\u003e8244055\u003c/code\u003e\u003c/a\u003e Git issue 612: count_one() size underflow through the stale required-string c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1c90270fb50c542a24d16c4848fc2b7b951bbd2d\"\u003e\u003ccode\u003e1c90270\u003c/code\u003e\u003c/a\u003e Git issue 611: Heap out-of-bounds write at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1760a20647f1c2ddcc025128407fe6f7edb905a1\"\u003e\u003ccode\u003e1760a20\u003c/code\u003e\u003c/a\u003e Support Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.7.19...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.36.0 to 40.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v40.37.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.37.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ev40.37.0 - 2026-08-20\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix: generate structurally valid Irish IBANs for \u003ccode\u003een_IE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/CedricConday\"\u003e\u003ccode\u003e@​CedricConday\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/suliuzh\"\u003e\u003ccode\u003e@​suliuzh\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4a464c8d7130e26b4c0e9749b039d10b5614c45e\"\u003e\u003ccode\u003e4a464c8\u003c/code\u003e\u003c/a\u003e Bump version: 40.36.0 → 40.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f33e820a5237384c43718f2ec0bf60d82014db12\"\u003e\u003ccode\u003ef33e820\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/74efb07c529e826c3aa12508b204b80b180eba1f\"\u003e\u003ccode\u003e74efb07\u003c/code\u003e\u003c/a\u003e fix(en_IE): generate structurally valid Irish IBANs (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d80d125d5c20d0572a26d5d617dbad647beb9343\"\u003e\u003ccode\u003ed80d125\u003c/code\u003e\u003c/a\u003e add Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4eced9f3bbc334a4204f7f46cab64b2ceb8d45aa\"\u003e\u003ccode\u003e4eced9f\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10 to 11 (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/de212b1a7e9d67bf439ee1737f8b66ded2f5c9a8\"\u003e\u003ccode\u003ede212b1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6 to 7 (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2437\"\u003e#2437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/56748a25e4350281b0fe49d55de01e73dfe20d13\"\u003e\u003ccode\u003e56748a2\u003c/code\u003e\u003c/a\u003e exclude \u003ccode\u003e.agents\u003c/code\u003e from manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d42d42daf84f6eb6479b8eacd694cdefec294b17\"\u003e\u003ccode\u003ed42d42d\u003c/code\u003e\u003c/a\u003e refine skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2d0e5348039771a6c77fb79b7d9a5a95720f9671\"\u003e\u003ccode\u003e2d0e534\u003c/code\u003e\u003c/a\u003e Add skills for agents\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/releases\"\u003epytest-benchmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e: instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/318\"\u003eionelmc/pytest-benchmark#318\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded compare \u003ccode\u003e--between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/302\"\u003eionelmc/pytest-benchmark#302\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/304\"\u003eionelmc/pytest-benchmark#304\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/306\"\u003eionelmc/pytest-benchmark#306\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/319\"\u003eionelmc/pytest-benchmark#319\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected. Contributed by xlyyddy in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/317\"\u003eionelmc/pytest-benchmark#317\u003c/a\u003e (fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003eionelmc/pytest-benchmark#65\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003eargparse.FileType\u003c/code\u003e. Contributed by Sophia Castellarin in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/310\"\u003eionelmc/pytest-benchmark#310\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos. Contributed by Daniel Holth and Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/297\"\u003eionelmc/pytest-benchmark#297\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/299\"\u003eionelmc/pytest-benchmark#299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code. Contributed by Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/300\"\u003eionelmc/pytest-benchmark#300\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/301\"\u003eionelmc/pytest-benchmark#301\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 (2026-08-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e:\ninstead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction.\nContributed by Aarni Koskela in \u003ccode\u003e[#318](https://github.com/ionelmc/pytest-benchmark/issues/318) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/318\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompare --between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e.\nContributed by Aarni Koskela in \u003ccode\u003e[#302](https://github.com/ionelmc/pytest-benchmark/issues/302) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/302\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking.\nContributed by Aarni Koskela in\n\u003ccode\u003e[#304](https://github.com/ionelmc/pytest-benchmark/issues/304) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/304\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#306](https://github.com/ionelmc/pytest-benchmark/issues/306) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/306\u0026gt;\u003c/code\u003e\u003c/em\u003e and\n\u003ccode\u003e[#319](https://github.com/ionelmc/pytest-benchmark/issues/319) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/319\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected.\nContributed by xlyyddy in \u003ccode\u003e[#317](https://github.com/ionelmc/pytest-benchmark/issues/317) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/317\u0026gt;\u003c/code\u003e_\n(fixes \u003ccode\u003e[#65](https://github.com/ionelmc/pytest-benchmark/issues/65) \u0026lt;https://github.com/ionelmc/pytest-benchmark/issues/65\u0026gt;\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated argparse.FileType.\nContributed by Sophia Castellarin in \u003ccode\u003e[#310](https://github.com/ionelmc/pytest-benchmark/issues/310) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/310\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos.\nContributed by Daniel Holth and Hugo van Kemenade in\n\u003ccode\u003e[#297](https://github.com/ionelmc/pytest-benchmark/issues/297) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/297\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#299](https://github.com/ionelmc/pytest-benchmark/issues/299) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/299\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code.\nContributed by Hugo van Kemenade in\n\u003ccode\u003e[#300](https://github.com/ionelmc/pytest-benchmark/issues/300) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/300\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#301](https://github.com/ionelmc/pytest-benchmark/issues/301) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/301\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/commit/07d519672687402e6c3fac1a543fbefd810d1e5b\"\u003e\u003ccode\u003e07d5196\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.3 → 5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/accf7331e22c0ede38ffa72081c38f3469e0c9b5\"\u003e\u003ccode\u003eaccf733\u003c/code\u003e\u003c/a\u003e Add some details on \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/304\"\u003e#304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/417dd9fa275e8b9d62c469e676cdb7546d2c4b8f\"\u003e\u003ccode\u003e417dd9f\u003c/code\u003e\u003c/a\u003e Really update the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/898acb34430c99ad877e94c52c8b90256a3bb4a8\"\u003e\u003ccode\u003e898acb3\u003c/code\u003e\u003c/a\u003e Update changelog and plan release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9cc7ef0bb1ad3785a46834b24660562dd48e4a0b\"\u003e\u003ccode\u003e9cc7ef0\u003c/code\u003e\u003c/a\u003e Defer xdist warning until benchmark collection (\u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003e#65\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/ef485506f04d5510831fdbdee5be7014f4726a93\"\u003e\u003ccode\u003eef48550\u003c/code\u003e\u003c/a\u003e Some minor skel updates: test only against latest pytest; bump linting/format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/88eaea957d1685f604a5835555d2ce5dbec1ac29\"\u003e\u003ccode\u003e88eaea9\u003c/code\u003e\u003c/a\u003e Add --benchmark-precision for adaptive rounds (opt-in)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/3b83d127127de74d9f71a3a78e5f661fac044950\"\u003e\u003ccode\u003e3b83d12\u003c/code\u003e\u003c/a\u003e Update and freeze GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/4b7662fbfba046eb92dd183e005e8708ac81e6cd\"\u003e\u003ccode\u003e4b7662f\u003c/code\u003e\u003c/a\u003e Fix ruff complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/26b011361d2c41f529a73833e1be8d3a565600fa\"\u003e\u003ccode\u003e26b0113\u003c/code\u003e\u003c/a\u003e Remove Taplo lint (unmaintained)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.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.16.3 to 0.16.5\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.16.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.16.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.16.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-20.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH116\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26460\"\u003e#26460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Restrict \u003ccode\u003edelete-full-slice\u003c/code\u003e to lists (\u003ccode\u003eFURB131\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27711\"\u003e#27711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Skip \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e when the \u003ccode\u003eopen\u003c/code\u003e argument is a file descriptor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27643\"\u003e#27643\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eInvalidInstruction\u003c/code\u003e on Windows CPUs that do not support \u003ccode\u003ePOPCNT\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27803\"\u003e#27803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Emit semantic syntax errors in string type definitions as \u003ccode\u003eF722\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27835\"\u003e#27835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow \u003ccode\u003eos._exit\u003c/code\u003e imports in \u003ccode\u003eimport-private-name\u003c/code\u003e (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27738\"\u003e#27738\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/9e4938c4a60bed3e87a11ee1e1db1bd23f4d964a\"\u003e\u003ccode\u003e9e4938c\u003c/code\u003e\u003c/a\u003e Bump 0.16.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28110\"\u003e#28110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aad0e909ef1390f4b2a3ba8aa0a67fb8ea5cbacd\"\u003e\u003ccode\u003eaad0e90\u003c/code\u003e\u003c/a\u003e Allow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5fdab73c5052350400c36b08c5d7710210343bc4\"\u003e\u003ccode\u003e5fdab73\u003c/code\u003e\u003c/a\u003e Update preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/29c8e5b2d0a46eb7dc4ff11c1b0a0dc5ccea52e4\"\u003e\u003ccode\u003e29c8e5b\u003c/code\u003e\u003c/a\u003e Document rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/50a4d7fd106603a5616b01ac3bef3306252b248f\"\u003e\u003ccode\u003e50a4d7f\u003c/code\u003e\u003c/a\u003e Document the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27906\"\u003e#27906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ada87950ea188f882f69b7bd6e2213a9696e3ee2\"\u003e\u003ccode\u003eada8795\u003c/code\u003e\u003c/a\u003e Introduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8947238863b61922bfc83f07edcc697c1cc07c0\"\u003e\u003ccode\u003ed894723\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameters through callable type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28109\"\u003e#28109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2685fdebbcf9938736fed8c45886a629f9c99a06\"\u003e\u003ccode\u003e2685fde\u003c/code\u003e\u003c/a\u003e [ty] Narrow functional enum members in \u003ccode\u003e==\u003c/code\u003e and \u003ccode\u003ematch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28103\"\u003e#28103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efcffd2178ce62e9951a53d4c50cadc225a0cfec\"\u003e\u003ccode\u003eefcffd2\u003c/code\u003e\u003c/a\u003e [ty] Intersection simplifications with subtype-related generic specialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eb780488037504e11f145ed778654fd8a825028b\"\u003e\u003ccode\u003eeb78048\u003c/code\u003e\u003c/a\u003e [ty] Bump ecosystem-analyzer for HTML escaping (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28104\"\u003e#28104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.3...0.16.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/1001","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/1001","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1001/packages"},{"uuid":"5376421943","node_id":"PR_kwDONUu0rM8AAAABCivV7g","number":221,"state":"open","title":"chore(deps): bump the all group with 5 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":["tomasvotava"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-07T15:13:09.000Z","updated_at":"2026-09-07T15:15:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":5,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"pandera","old_version":"0.32.1","new_version":"0.33.1","repository_url":"https://github.com/pandera-dev/pandera"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"boto3-stubs","old_version":"1.43.82","new_version":"1.43.88","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"import-linter","old_version":"2.14","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [pandera](https://github.com/pandera-dev/pandera) | `0.32.1` | `0.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.5` | `0.16.6` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.43.82` | `1.43.88` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.14` | `2.15` |\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandera` from 0.32.1 to 0.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandera-dev/pandera/releases\"\u003epandera's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.33.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: announce Pandera CLI and PyArrow support in banner by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2456\"\u003eunionai-oss/pandera#2456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore optional-column semantics for bare \u003ccode\u003eT | None\u003c/code\u003e annotations by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2458\"\u003eunionai-oss/pandera#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn when optional columns are missing via on_missing option by \u003ca href=\"https://github.com/ChrisJr404\"\u003e\u003ccode\u003e@​ChrisJr404\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2447\"\u003eunionai-oss/pandera#2447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add actionlint workflow and pre-commit hook by \u003ca href=\"https://github.com/chernojagne\"\u003e\u003ccode\u003e@​chernojagne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2436\"\u003eunionai-oss/pandera#2436\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/ChrisJr404\"\u003e\u003ccode\u003e@​ChrisJr404\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2447\"\u003eunionai-oss/pandera#2447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chernojagne\"\u003e\u003ccode\u003e@​chernojagne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2436\"\u003eunionai-oss/pandera#2436\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/unionai-oss/pandera/compare/v0.33.0...v0.33.1\"\u003ehttps://github.com/unionai-oss/pandera/compare/v0.33.0...v0.33.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.33.0: Introducing \u003ccode\u003epandera\u003c/code\u003e CLI, support pyarrow table\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReport all missing required columns in lazy validation by \u003ca href=\"https://github.com/vineethsaivs\"\u003e\u003ccode\u003e@​vineethsaivs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2397\"\u003eunionai-oss/pandera#2397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): report differing categories in dtype mismatch error by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2391\"\u003eunionai-oss/pandera#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas-engine): treat an Enum annotation as a categorical dtype (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2052\"\u003e#2052\u003c/a\u003e) by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2399\"\u003eunionai-oss/pandera#2399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): run column parsers before dataframe-level coercion by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2400\"\u003eunionai-oss/pandera#2400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): treat NA as coercible for masked nullable dtypes by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2404\"\u003eunionai-oss/pandera#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix parenthesized \u003ca href=\"https://github.com/dataframe\"\u003e\u003ccode\u003e@​dataframe\u003c/code\u003e\u003c/a\u003e_parser() decorator form by \u003ca href=\"https://github.com/vineethsaivs\"\u003e\u003ccode\u003e@​vineethsaivs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2408\"\u003eunionai-oss/pandera#2408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(polars): avoid concat deprecation in lazy validation by \u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2411\"\u003eunionai-oss/pandera#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Repair coerce and parser options for xarray Datasets by \u003ca href=\"https://github.com/abaarsma\"\u003e\u003ccode\u003e@​abaarsma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2413\"\u003eunionai-oss/pandera#2413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(narwhals): support the pandas schema API in the narwhals backend by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2417\"\u003eunionai-oss/pandera#2417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(io): deserialize parametrized Decimal dtypes from yaml/json by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2434\"\u003eunionai-oss/pandera#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): apply parsers to Index fields and schema components by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2435\"\u003eunionai-oss/pandera#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(pyarrow): add first-class pyarrow.Table schema validation by \u003ca href=\"https://github.com/sravankumarkunadi\"\u003e\u003ccode\u003e@​sravankumarkunadi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2427\"\u003eunionai-oss/pandera#2427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a pandera CLI: validate, infer, and generate commands by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2402\"\u003eunionai-oss/pandera#2402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd backend info to the cli by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2446\"\u003eunionai-oss/pandera#2446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): respect Optional pydantic fields as nullable in PydanticModel columns (closes \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2406\"\u003e#2406\u003c/a\u003e) by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2429\"\u003eunionai-oss/pandera#2429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Fix \u0026quot;list\u0026quot; type annotation by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2440\"\u003eunionai-oss/pandera#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport itemsize-parameterized numpy dtypes in the pandas engine by \u003ca href=\"https://github.com/mannemkarthik010\"\u003e\u003ccode\u003e@​mannemkarthik010\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2437\"\u003eunionai-oss/pandera#2437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bind self correctly in check_input when an arg is passed by keyword by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2428\"\u003eunionai-oss/pandera#2428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(polars): raise minimum polars version to \u003ccode\u003e1.20.0\u003c/code\u003e by \u003ca href=\"https://github.com/fhoehle\"\u003e\u003ccode\u003e@​fhoehle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2412\"\u003eunionai-oss/pandera#2412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated \u0026quot;the\u0026quot; typos in Check and Hypothesis docstrings by \u003ca href=\"https://github.com/maupatel\"\u003e\u003ccode\u003e@​maupatel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2445\"\u003eunionai-oss/pandera#2445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a backend-neutral \u003ccode\u003eFieldType[T]\u003c/code\u003e typing contract by \u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2448\"\u003eunionai-oss/pandera#2448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle scalar groupby keys in _format_groupby_input by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2420\"\u003eunionai-oss/pandera#2420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(decorators): support keyword-only / variadic functions in check_input by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2454\"\u003eunionai-oss/pandera#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: only run unit tests for changed areas by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2450\"\u003eunionai-oss/pandera#2450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): make intersphinx fetch resilient to transient failures by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2452\"\u003eunionai-oss/pandera#2452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): scope pyspark JDK24 security-manager opt-in to JDK 24 only by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2451\"\u003eunionai-oss/pandera#2451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: respect pydantic serialization aliases by \u003ca href=\"https://github.com/mameikagou\"\u003e\u003ccode\u003e@​mameikagou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2449\"\u003eunionai-oss/pandera#2449\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/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2391\"\u003eunionai-oss/pandera#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abaarsma\"\u003e\u003ccode\u003e@​abaarsma\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2413\"\u003eunionai-oss/pandera#2413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sravankumarkunadi\"\u003e\u003ccode\u003e@​sravankumarkunadi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2427\"\u003eunionai-oss/pandera#2427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2429\"\u003eunionai-oss/pandera#2429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2440\"\u003eunionai-oss/pandera#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mannemkarthik010\"\u003e\u003ccode\u003e@​mannemkarthik010\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2437\"\u003eunionai-oss/pandera#2437\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/unionai-oss/pandera/commit/62f55e2dccf0a199cfe4d6ce3eda0c1d29e2e4e6\"\u003e\u003ccode\u003e62f55e2\u003c/code\u003e\u003c/a\u003e ci: add actionlint workflow and pre-commit hook (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2436\"\u003e#2436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/857a3b2c2dccd5dcdb68b5c5f2b466d6dc7965e9\"\u003e\u003ccode\u003e857a3b2\u003c/code\u003e\u003c/a\u003e Warn when optional columns are missing via on_missing option (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2447\"\u003e#2447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/2e307b7b79b9f57f2b51037beb09b147aeb9b788\"\u003e\u003ccode\u003e2e307b7\u003c/code\u003e\u003c/a\u003e fix: restore optional-column semantics for bare \u003ccode\u003eT | None\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2458\"\u003e#2458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/ccdabde4d8ea279d30a59e54a7c85ad1eef886a4\"\u003e\u003ccode\u003eccdabde\u003c/code\u003e\u003c/a\u003e docs: announce Pandera CLI and PyArrow support in banner (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2456\"\u003e#2456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/c37a5b2c4b8c636b12f9e136707a8fe0d7a79307\"\u003e\u003ccode\u003ec37a5b2\u003c/code\u003e\u003c/a\u003e fix: respect pydantic serialization aliases (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2449\"\u003e#2449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/b6ecd5378c0745ec6146e10a29c9b285be0dcb1d\"\u003e\u003ccode\u003eb6ecd53\u003c/code\u003e\u003c/a\u003e fix(docs): only apply pyspark JDK24 security-manager opt-in flag on JDK 24 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/384d48b078528afa37757fb8312d537585bbdf2c\"\u003e\u003ccode\u003e384d48b\u003c/code\u003e\u003c/a\u003e fix(docs): make intersphinx fetch resilient to transient failures (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2452\"\u003e#2452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/f1245c280d5dfcc5ded1b80abc80073b51f1e643\"\u003e\u003ccode\u003ef1245c2\u003c/code\u003e\u003c/a\u003e ci: only run unit tests for changed areas (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2450\"\u003e#2450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/46b1495bf81ece693d055c25890e0dce6fbedfb3\"\u003e\u003ccode\u003e46b1495\u003c/code\u003e\u003c/a\u003e fix(decorators): support keyword-only / variadic functions in check_input (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/9e268ac8f31066b007bb4e9a2cbb5fcff0156f5c\"\u003e\u003ccode\u003e9e268ac\u003c/code\u003e\u003c/a\u003e fix: handle scalar groupby keys in _format_groupby_input (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2420\"\u003e#2420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandera-dev/pandera/compare/v0.32.1...v0.33.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.16.5 to 0.16.6\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.16.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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.16.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e\"\u003e\u003ccode\u003e22f65a2\u003c/code\u003e\u003c/a\u003e Bump 0.16.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28280\"\u003e#28280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd\"\u003e\u003ccode\u003e7cc9f1e\u003c/code\u003e\u003c/a\u003e [ty] Document \u003ccode\u003eCallableTypeKind\u003c/code\u003e variants (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28277\"\u003e#28277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078\"\u003e\u003ccode\u003e056ce07\u003c/code\u003e\u003c/a\u003e Add UV_LOCKED to all workflows (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28261\"\u003e#28261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6\"\u003e\u003ccode\u003e6d6e35d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a\"\u003e\u003ccode\u003e80b4891\u003c/code\u003e\u003c/a\u003e [ty] Temporarily disable tuple types in property tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28275\"\u003e#28275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0\"\u003e\u003ccode\u003e3f7a54d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d\"\u003e\u003ccode\u003e35656cf\u003c/code\u003e\u003c/a\u003e [ty] Preserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf\"\u003e\u003ccode\u003ed2626c8\u003c/code\u003e\u003c/a\u003e [ty] Reject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c\"\u003e\u003ccode\u003eee6a6d1\u003c/code\u003e\u003c/a\u003e [ty] Support ParamSpecs in \u003ccode\u003eConstraintSet\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28028\"\u003e#28028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d\"\u003e\u003ccode\u003e7f6a170\u003c/code\u003e\u003c/a\u003e [ty] Move bound APIs to constraint owners (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28094\"\u003e#28094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3-stubs` from 1.43.82 to 1.43.88\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/youtype/mypy_boto3_builder/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `import-linter` from 2.14 to 2.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/seddonym/import-linter/blob/main/docs/release_notes.md\"\u003eimport-linter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.15 (2026-09-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for lazy imports to the explore UI and \u003ccode\u003edrawgraph\u003c/code\u003e command.\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/seddonym/import-linter/commit/31927f1457e3df673912cb5efb0afa6dbc37585f\"\u003e\u003ccode\u003e31927f1\u003c/code\u003e\u003c/a\u003e Release v2.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/1a652a6a02ba3ad452ad20db52641f75f26acb27\"\u003e\u003ccode\u003e1a652a6\u003c/code\u003e\u003c/a\u003e Update github actions to silence warnings about Node 20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/552df7fcd2ceb3fa9df076db8cceda693dc6cef9\"\u003e\u003ccode\u003e552df7f\u003c/code\u003e\u003c/a\u003e Display lazy imports with open arrowhead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/f55b3515cbaf947a428ee1ca4824bdacdd575b6f\"\u003e\u003ccode\u003ef55b351\u003c/code\u003e\u003c/a\u003e Upgrade to Grimp 3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/9692850bc24a7ccd6790ab5fcb767b80ae000537\"\u003e\u003ccode\u003e9692850\u003c/code\u003e\u003c/a\u003e Support overriding arrowhead on Edge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/e61a687daed7e5f91d724b287a3d4f576b5e0db8\"\u003e\u003ccode\u003ee61a687\u003c/code\u003e\u003c/a\u003e Refactor Edge so it supports line style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/efc8642199e6bcf288c59ed111dff71da5634dc8\"\u003e\u003ccode\u003eefc8642\u003c/code\u003e\u003c/a\u003e Update uv.lock\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/seddonym/import-linter/compare/v2.14...v2.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/tomasvotava/hyperion/pull/221","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasvotava%2Fhyperion/issues/221","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/221/packages"},{"uuid":"5373883221","node_id":"PR_kwDOMRnt5M8AAAABCgsKIA","number":837,"state":"closed","title":"chore(deps): bump the python-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T11:14:01.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-07T11:14:52.000Z","updated_at":"2026-09-14T11:14:02.000Z","time_to_close":604749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":3,"packages":[{"name":"psycopg","old_version":"3.3.4","new_version":"3.3.5","repository_url":"https://github.com/psycopg/psycopg"},{"name":"apprise","old_version":"1.13.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 3 updates: [psycopg](https://github.com/psycopg/psycopg), [apprise](https://github.com/caronc/apprise) and [cachetools](https://github.com/tkem/cachetools).\n\nUpdates `psycopg` from 3.3.4 to 3.3.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!ProgrammingError\u003c/code\u003e when dumping non-\u003ccode\u003e!None\u003c/code\u003e values with\nno \u003ccode\u003e!NoneType\u003c/code\u003e dumper registered in python implementation (:ticket:\u003ccode\u003e[#1325](https://github.com/psycopg/psycopg/issues/1325)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!wait_selector\u003c/code\u003e wait function to not raise \u003ccode\u003e!KeyError\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1327](https://github.com/psycopg/psycopg/issues/1327)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!DataError\u003c/code\u003e messages leaking the literal \u003ccode\u003e{...}\u003c/code\u003e placeholder instead\nof the offending value when loading a pre-year-1 :sql:\u003ccode\u003etimestamp\u003c/code\u003e or a\nmalformed binary :sql:\u003ccode\u003ejsonb\u003c/code\u003e value (:ticket:\u003ccode\u003e[#1372](https://github.com/psycopg/psycopg/issues/1372)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003e!DataError\u003c/code\u003e instead of \u003ccode\u003e!ValueError\u003c/code\u003e when \u003ccode\u003e~psycopg.rows.namedtuple_row\u003c/code\u003e\nreceives duplicate column names (:ticket:\u003ccode\u003e[#1348](https://github.com/psycopg/psycopg/issues/1348)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003e!DataError\u003c/code\u003e on inconsistent copy data (:tickets:\u003ccode\u003e[#1359](https://github.com/psycopg/psycopg/issues/1359), [#1360](https://github.com/psycopg/psycopg/issues/1360)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eHandle client encodings aliases (:ticket:\u003ccode\u003e[#1363](https://github.com/psycopg/psycopg/issues/1363)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building C extension with Cython 3.3.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/ea542c9534cc9841d50450e0c156b549cc6c805a\"\u003e\u003ccode\u003eea542c9\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8d31e4711c22b206d8863b9397b3b34f5b106e4d\"\u003e\u003ccode\u003e8d31e47\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/268f863e0e8dbdbaf4f10616ebd14ff00edaeb51\"\u003e\u003ccode\u003e268f863\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1370\"\u003e#1370\u003c/a\u003e from Sanjays2402/fix/truncated-binary-copy-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/a412fa4d682f035a9cf3c7886a5c95c15c64ba96\"\u003e\u003ccode\u003ea412fa4\u003c/code\u003e\u003c/a\u003e docs: put together different issues fixed around copy parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/f757307068aef06e439cf164915a3781acf483b5\"\u003e\u003ccode\u003ef757307\u003c/code\u003e\u003c/a\u003e fix: clearer error messages according to truncated copy message part\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b1f17c44096b8fbc90836d9652d083f23c88e28d\"\u003e\u003ccode\u003eb1f17c4\u003c/code\u003e\u003c/a\u003e test: move existing COPY format parsing tests into a single module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/21eba573f9356276b2a3e0b7c1d86fad03f2872f\"\u003e\u003ccode\u003e21eba57\u003c/code\u003e\u003c/a\u003e test: drop useless parametrization of copy binary parsigh test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6780e17bcee0b838dedd0aa9c1b6dcc563a50cec\"\u003e\u003ccode\u003e6780e17\u003c/code\u003e\u003c/a\u003e fix(copy): handle truncated binary row headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f2fcfbf35af4b80a4755fff75fe8b8f5e059193\"\u003e\u003ccode\u003e2f2fcfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1364\"\u003e#1364\u003c/a\u003e from DylanYoung/fix_client_encoding_aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/ccc351ec3180969d105199012a017240492a43c0\"\u003e\u003ccode\u003eccc351e\u003c/code\u003e\u003c/a\u003e refactor: don't store the encodings raw table as a dict\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.4...3.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apprise` from 1.13.0 to 1.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eJust a small update to fix a small stability issue with Attachments under some circumstances and the few PR's made by others in one more small bundle.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e (this time i mean it :wink: ) . Future releases will be under Apprise v2.x. Again, I strongly want to urge Developers: \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it WILL introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Signalgrid notification service plugin by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Lauther notification support by \u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes Gento Linux issue with memory based attachment handling in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1709\"\u003ecaronc/apprise#1709\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e:point_up: This is the core reason for this minor update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAllow periods in Pingram API keys (JWT format) by \u003ca href=\"https://github.com/lipusal\"\u003e\u003ccode\u003e@​lipusal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1714\"\u003ecaronc/apprise#1714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes intermittent test failures for matrix in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1717\"\u003ecaronc/apprise#1717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cp\u003en/a\u003c/p\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Py 3.13+, please by \u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(matrix): typofix in label by \u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo recomended -\u0026gt; recommended by \u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.13.1 from PyPI\r\npip install apprise==1.13.1\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ehttps://github.com/caronc/apprise/compare/v1.13.0...v1.13.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/caronc/apprise/commit/cf4da87eab713370a62d7a4f9ca64dcd3bffdf61\"\u003e\u003ccode\u003ecf4da87\u003c/code\u003e\u003c/a\u003e bumped version to v1.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0386b1cc093b3c55cfcebf4bdce17fc4309e0bd7\"\u003e\u003ccode\u003e0386b1c\u003c/code\u003e\u003c/a\u003e Add Lauther notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1715\"\u003e#1715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/3299eb37aa60ed729f935f039b79a9f9786e7424\"\u003e\u003ccode\u003e3299eb3\u003c/code\u003e\u003c/a\u003e Add Signalgrid notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e05331ba9b5d2ace834b23e49728065ffebcb377\"\u003e\u003ccode\u003ee05331b\u003c/code\u003e\u003c/a\u003e relaxed some noisy logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8f73f6a0cdb83e6187624715a12e8f36dd8a1bbc\"\u003e\u003ccode\u003e8f73f6a\u003c/code\u003e\u003c/a\u003e Fixes intermittent test failures for matrix on py39 (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1717\"\u003e#1717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0af1bb2097dad2557f55a523d09269341fa3fdfb\"\u003e\u003ccode\u003e0af1bb2\u003c/code\u003e\u003c/a\u003e docs: fix typo recomended -\u0026gt; recommended (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1716\"\u003e#1716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8df288a1824711bc6b1bdb59c1b5b356e4da3fd5\"\u003e\u003ccode\u003e8df288a\u003c/code\u003e\u003c/a\u003e Allow periods in Pingram API keys (JWT format) (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1714\"\u003e#1714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/aa7221b7cabe757e000a1e6e019fc8f91ec517a0\"\u003e\u003ccode\u003eaa7221b\u003c/code\u003e\u003c/a\u003e Allow Py 3.13+ (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1711\"\u003e#1711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e93c9360c5ae2ed729a282bc454f6ceeb4abd9e1\"\u003e\u003ccode\u003ee93c936\u003c/code\u003e\u003c/a\u003e Fixes Gento Linux issue with memory based attachment handling (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1709\"\u003e#1709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4e6f4b117fa356f7ba0a076080c4927fcf78bc47\"\u003e\u003ccode\u003e4e6f4b1\u003c/code\u003e\u003c/a\u003e typofix in matrix:// label (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1707\"\u003e#1707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Serph91P/StreamVault/pull/837","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serph91P%2FStreamVault/issues/837","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/837/packages"},{"uuid":"5368778109","node_id":"PR_kwDORJyONc8AAAABCclQZQ","number":238,"state":"closed","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8 in /backend","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-10T07:40:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-07T00:55:01.000Z","updated_at":"2026-09-10T07:40:50.000Z","time_to_close":283540,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=uv\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/jeraldlyh/syllogi/pull/238","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeraldlyh%2Fsyllogi/issues/238","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/238/packages"},{"uuid":"5366971559","node_id":"PR_kwDOUBpG5M8AAAABCbNp2g","number":44,"state":"closed","title":"chore(deps)(deps): Update cachetools requirement from \u003e=5.3.0 to \u003e=7.1.8","user":"dependabot[bot]","labels":["size/xs"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-09-18T03:39:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-06T18:53:21.000Z","updated_at":"2026-09-18T03:39:59.000Z","time_to_close":981995,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Update","packages":[{"name":"cachetools","old_version":"\u003e=5.3.0","new_version":"\u003e=7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [cachetools](https://github.com/tkem/cachetools) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.0...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Alexkkkkk/grinch-gram-ton/pull/44","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexkkkkk%2Fgrinch-gram-ton/issues/44","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44/packages"},{"uuid":"5366047633","node_id":"PR_kwDOS6gKis8AAAABCahXkg","number":576,"state":"open","title":"chore(deps): bump the uv-minor-patch group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-06T15:55:17.000Z","updated_at":"2026-09-06T15:55:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":3,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"rapidfuzz","old_version":"3.14.5","new_version":"3.14.6","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"hypothesis","old_version":"6.167.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 3 updates: [cachetools](https://github.com/tkem/cachetools), [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) and [hypothesis](https://github.com/HypothesisWorks/hypothesis).\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rapidfuzz` from 3.14.5 to 3.14.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/releases\"\u003erapidfuzz's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.14.6\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix some divergences in the pure Python fallback\u003c/li\u003e\n\u003cli\u003efix compatibility with new Cython versions\u003c/li\u003e\n\u003cli\u003efixed potential out of bound access inside Editops.remove_subsequence\u003c/li\u003e\n\u003cli\u003efixed handling python fallback implementation of Editops.remove_subsequence\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edropped support for Python 3.10\u003c/li\u003e\n\u003cli\u003edropped wheels for experimental Python 3.13 free threaded\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst\"\u003erapidfuzz's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003e[3.14.6] - 2026-08-30\n^^^^^^^^^^^^^^^^^^^^^\nFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix some divergences in the pure Python fallback\n* fix compatibility with new Cython versions\n* fixed potential out of bound access inside Editops.remove_subsequence\n* fixed handling python fallback implementation of Editops.remove_subsequence\n\u003cp\u003eRemoved\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edropped support for Python 3.10\u003c/li\u003e\n\u003cli\u003edropped wheels for experimental Python 3.13 free threaded\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e[3.14.5] - 2026-04-07\n^^^^^^^^^^^^^^^^^^^^^\nFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix release ci attempting to upload a pyodide wheel\n\u003cp\u003e[3.14.4] - 2026-04-06\n^^^^^^^^^^^^^^^^^^^^^\nAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd risc64 wheels\u003c/li\u003e\n\u003cli\u003eadd support for taskflow 4.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* upgrade to ``Cython==3.2.4``.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix type hints for extractOne when no score_cutoff is provided\n\n[3.14.3] - 2025-11-01\n^^^^^^^^^^^^^^^^^^^^^\nFixed\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing pypy and freethreaded linux wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edrop s390x and ppc64le wheels since they are virtually unused and require extremely long to build under emulation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e[3.14.2] - 2025-10-30\n^^^^^^^^^^^^^^^^^^^^^\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/rapidfuzz/RapidFuzz/commit/d1b4a183f9ee445134989f4ebbf1e4acfacd4ed7\"\u003e\u003ccode\u003ed1b4a18\u003c/code\u003e\u003c/a\u003e fix cython call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/f7be71b006ebc7bfeb836a18b7e33fc7412f699b\"\u003e\u003ccode\u003ef7be71b\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/3199c87e7309ed6a2779e658dbddcfc0ba654963\"\u003e\u003ccode\u003e3199c87\u003c/code\u003e\u003c/a\u003e fix version tag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/7b57e516d59948d4d7e349e88ffafd99668aa2d2\"\u003e\u003ccode\u003e7b57e51\u003c/code\u003e\u003c/a\u003e update date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/15e68d7b195bca227e9992efe928a01d40bd3553\"\u003e\u003ccode\u003e15e68d7\u003c/code\u003e\u003c/a\u003e update rapidfuzz-cpp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/b637f9f689ef12749d97be87056704cfbc4c2d7c\"\u003e\u003ccode\u003eb637f9f\u003c/code\u003e\u003c/a\u003e don't hand out references to internal elements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/868a451a6eb8b111fd97bbd3b3413fcf14ee88e4\"\u003e\u003ccode\u003e868a451\u003c/code\u003e\u003c/a\u003e fix Editops.remove_subsequence\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/83b8b8468f3a0bef8fbee0a118c6ad85df325ac8\"\u003e\u003ccode\u003e83b8b84\u003c/code\u003e\u003c/a\u003e fix compatibility with new Cython versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/24f2ac526bf1ec91db90e7ff02e52816e6bcb603\"\u003e\u003ccode\u003e24f2ac5\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 4.1.1 to 4.2.0 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/03a5137851aab675b430389235d73bb18873dafe\"\u003e\u003ccode\u003e03a5137\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/compare/v3.14.5...v3.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.167.0 to 6.167.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a8dcd7422a325926693b5464f73349e361562b7c\"\u003e\u003ccode\u003ea8dcd74\u003c/code\u003e\u003c/a\u003e Bump hypothesis version to 6.167.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c862b6fbc6d73e596e53531ca0063d0b33b6edfc\"\u003e\u003ccode\u003ec862b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4874\"\u003e#4874\u003c/a\u003e from Zac-HD/claude/cu-many-reject-span-discard-yhaidc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/df39994ae507fb440c044d3e225afa647887af3d\"\u003e\u003ccode\u003edf39994\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4873\"\u003e#4873\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1d0e1557d0389ac5f809ddbf1182853b46cb8525\"\u003e\u003ccode\u003e1d0e155\u003c/code\u003e\u003c/a\u003e Add return annotation to satisfy mypy's disallow_incomplete_defs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/dacaf8cd505e3a28ffceb195b174f7c322ee5367\"\u003e\u003ccode\u003edacaf8c\u003c/code\u003e\u003c/a\u003e Mark rejected many() elements' spans as discarded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/d46ff510022c3c2ad997818723ab49cae0e54297\"\u003e\u003ccode\u003ed46ff51\u003c/code\u003e\u003c/a\u003e Update pinned dependencies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/v6.167.0...v6.167.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/jamesbconner/Jidou/pull/576","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesbconner%2FJidou/issues/576","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/576/packages"}],"issue_packages":[{"old_version":"7.1.8","new_version":"7.2.0","update_type":"minor","path":null,"pr_created_at":"2026-09-24T19:14:31.000Z","version_change":"7.1.8 → 7.2.0","issue":{"uuid":"5573307297","node_id":"PR_kwDOREsdM88AAAABE_iDYw","number":273,"state":"closed","title":"build: bump cachetools from 7.1.8 to 7.2.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-29T07:21:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-24T19:14:31.000Z","updated_at":"2026-09-29T07:21:35.000Z","time_to_close":389214,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.8 to 7.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.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=cachetools\u0026package-manager=uv\u0026previous-version=7.1.8\u0026new-version=7.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/strands-rl/strands-env/pull/273","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-rl%2Fstrands-env/issues/273","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/273/packages"}},{"old_version":"7.1.8","new_version":"7.2.0","update_type":"minor","path":null,"pr_created_at":"2026-09-22T20:25:12.000Z","version_change":"7.1.8 → 7.2.0","issue":{"uuid":"5544836559","node_id":"PR_kwDOPK4tyc8AAAABEpIrIQ","number":23,"state":"open","title":"deps: bump the production-dependencies group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-22T20:25:12.000Z","updated_at":"2026-09-22T20:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"production-dependencies","update_count":2,"packages":[{"name":"pandas","old_version":"3.0.5","new_version":"3.0.6","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 2 updates: [pandas](https://github.com/pandas-dev/pandas) and [cachetools](https://github.com/tkem/cachetools).\n\nUpdates `pandas` from 3.0.5 to 3.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.6\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.6.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version. This is also the first release to support Python 3.15.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.6.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/2905718b126579d2cf0fe5bae05bd75facb67d77\"\u003e\u003ccode\u003e2905718\u003c/code\u003e\u003c/a\u003e RLS: 3.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3188cede89a060e7d2ca37298e160d1712a8695a\"\u003e\u003ccode\u003e3188ced\u003c/code\u003e\u003c/a\u003e [backport 3.0.x]  BUG: read_csv(sep=None) raised TypeError instead of falling...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f0979054b9bb20fb43dadb8be9c7cd052506a5fb\"\u003e\u003ccode\u003ef097905\u003c/code\u003e\u003c/a\u003e DOC: cleanup 3.0.6 whatsnew + mention Python 3.15 support (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68965\"\u003e#68965\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68969\"\u003e#68969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4f68223463a6b960b5cdafc10125bf0987dd2698\"\u003e\u003ccode\u003e4f68223\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix setting with bool column mask into 1-column DataFra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e3df0e81f4e1830f0fe833ef83c51d4a511d9d95\"\u003e\u003ccode\u003ee3df0e8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: full-slice setitem into a pyarrow-backed array shared m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b7735f6070ef031296101acc42a5a30e0f3cc791\"\u003e\u003ccode\u003eb7735f6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/66117\"\u003e#66117\u003c/a\u003e on branch 3.0.x (BUG: interpolate leaving NAs unfilled for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca0b7769ef0bb5e28d220e245c268142c62d637\"\u003e\u003ccode\u003ebca0b77\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: read_csv leaked the string-intern table when a column f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bca1e5de1f691366cf450c929326e7a35b03218a\"\u003e\u003ccode\u003ebca1e5d\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: prevent external mutation of RangeIndex._data (CoW) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/6\"\u003e#6\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c95b42cb0c91bd0cadb34429e1df377926087e0d\"\u003e\u003ccode\u003ec95b42c\u003c/code\u003e\u003c/a\u003e [3.0.x] CI: skip cython-lint on pre-commit.ci (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68910\"\u003e#68910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9cbd884bb9218323777d8237163dea1a30e7e506\"\u003e\u003ccode\u003e9cbd884\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] Backport of some already merged regression fixes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/68447\"\u003e#68447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.5...v3.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.8 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/atlarge-research/Kavier/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlarge-research%2FKavier/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"7.1.8","new_version":"7.2.0","update_type":"minor","path":null,"pr_created_at":"2026-09-21T11:14:56.000Z","version_change":"7.1.8 → 7.2.0","issue":{"uuid":"5526214822","node_id":"PR_kwDOMRnt5M8AAAABEaLVHQ","number":849,"state":"closed","title":"chore(deps): bump the python-dependencies group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-21T19:47:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-21T11:14:56.000Z","updated_at":"2026-09-21T19:47:28.000Z","time_to_close":30751,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":6,"packages":[{"name":"uvicorn","old_version":"0.52.4","new_version":"0.53.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.52","new_version":"2.0.54","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.19.2","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.5","new_version":"3.5.6","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"cachetools","old_version":"7.1.8","new_version":"7.2.0","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.53.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.52` | `2.0.54` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.2` | `1.20.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.5` | `3.5.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.14.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.8` | `7.2.0` |\n\nUpdates `uvicorn` from 0.52.4 to 0.53.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.53.0\u003c/h2\u003e\n\u003ch2\u003e🌐 Opt-in HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euvicorn\u003c/code\u003e 0.53.0 adds experimental HTTP/2 through \u003ccode\u003ezttp\u003c/code\u003e, alongside a new \u003ccode\u003ezuvloop\u003c/code\u003e integration and connection-handling improvements.\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003euv add uvicorn==0.53.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eServe HTTP/1.1 and HTTP/2 with \u003ccode\u003ezttp\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e). Install \u003ccode\u003ezttp\u003c/code\u003e, then enable HTTP/2 with \u003ccode\u003e--http zttp --http2\u003c/code\u003e. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 remains experimental.\u003c/strong\u003e Upgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ More event loop choice\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRun Uvicorn with \u003ccode\u003ezuvloop\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e). Install \u003ccode\u003ezuvloop\u003c/code\u003e separately and select it explicitly with \u003ccode\u003e--loop zuvloop\u003c/code\u003e on CPython 3.14 or newer.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛡️ More reliable connections and proxies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHonor \u003ccode\u003eConnection: close\u003c/code\u003e token lists\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust IPv6 loopback proxies by default\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e). The default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value now includes \u003ccode\u003e::1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKeep upgraded WebSockets alive\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\u003c/a\u003e). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.\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.52.4...0.53.0\"\u003e0.52.4...0.53.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.53.0 (September 14, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release adds experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e. Enable it with \u003ccode\u003e--http zttp --http2\u003c/code\u003e.\nUpgrade-based h2c and WebSockets over HTTP/2 are not supported.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental HTTP/2 support through \u003ccode\u003ezttp\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2982\"\u003e#2982\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ezuvloop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3104\"\u003e#3104\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle comma-separated, case-insensitive \u003ccode\u003eConnection: close\u003c/code\u003e tokens across HTTP implementations (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrust IPv6 loopback in the default \u003ccode\u003eFORWARDED_ALLOW_IPS\u003c/code\u003e value (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancel the HTTP keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3107\"\u003e#3107\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/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee\"\u003e\u003ccode\u003e421708f\u003c/code\u003e\u003c/a\u003e Version 0.53.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23\"\u003e\u003ccode\u003ef1a1bff\u003c/code\u003e\u003c/a\u003e Unset the keep-alive timer when upgrading to WebSocket (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc\"\u003e\u003ccode\u003e63971ed\u003c/code\u003e\u003c/a\u003e Document HTTP/2 support (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a\"\u003e\u003ccode\u003e7d1a005\u003c/code\u003e\u003c/a\u003e Remove race from multiprocess health check test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3128\"\u003e#3128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9\"\u003e\u003ccode\u003e5ac6265\u003c/code\u003e\u003c/a\u003e Add ::1 to FORWARDED_ALLOW_IPS (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/098b206ff7b01098561956ff4e7746d05e02acc6\"\u003e\u003ccode\u003e098b206\u003c/code\u003e\u003c/a\u003e Remove timing race from SIGHUP supervisor test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/968f15e5d09df5f6b8959975f18687b9d755862d\"\u003e\u003ccode\u003e968f15e\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3113\"\u003e#3113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7d4c08cce9eeabf64695c326b0e45c47c6a0337b\"\u003e\u003ccode\u003e7d4c08c\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fe528a480c0aec3aea3ee8ef13251b5216c47ae9\"\u003e\u003ccode\u003efe528a4\u003c/code\u003e\u003c/a\u003e Require explicit opt-in for zttp HTTP/2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fa324a415364563cf45908966435e2480a6b46bf\"\u003e\u003ccode\u003efa324a4\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump httpx2 from 2.10.0 to 2.12.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.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.52 to 2.0.54\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.54\u003c/h1\u003e\n\u003cp\u003eReleased: September 15, 2026\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [change]\u003c/strong\u003e Binary wheels are no longer built for Python 3.7.  PyPI now rejects wheel\nfiles whose filename does not begin with the normalized project name, and\nthe packaging tools that can be installed on Python 3.7 do not produce\nsuch a filename.  As a result, SQLAlchemy 2.0.44 was the last release to\npublish Python 3.7 wheels to PyPI, and releases 2.0.45 and later have\nbeen available on Python 3.7 only as a source distribution; the wheel\nbuilds for Python 3.7 are now removed.  Python 3.7 remains supported by\nthe 2.0 series.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Fixed issue where the Cython extensions were compiled without the\n\u003ccode\u003efreethreading_compatible\u003c/code\u003e directive, so that they did not declare\nthemselves as safe to run without the GIL.  On a free-threaded Python\ninterpreter such as Python 3.13t or 3.14t, importing SQLAlchemy would\ncause the interpreter to re-enable the GIL, emitting a\n\u003ccode\u003eRuntimeWarning\u003c/code\u003e.  The directive is now set when building for Python\n3.13 and above, and a test has been added which confirms that importing\nSQLAlchemy on a free-threaded build does not enable the GIL.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13592\"\u003e#13592\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.53\u003c/h1\u003e\n\u003cp\u003eReleased: September 14, 2026\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 an expression passed to \u003ccode\u003e_orm.with_expression()\u003c/code\u003e\nthat embedded a \u003ccode\u003e_sql.select()\u003c/code\u003e, such as a correlated\n\u003ccode\u003e_sql.exists()\u003c/code\u003e, would fail to populate the attribute correctly on\nthe second and subsequent executions of an otherwise identical\nstatement, when the \u003ccode\u003e_orm.query_expression()\u003c/code\u003e attribute was loaded\nby a relationship loader that emits a second query, i.e.\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e, \u003ccode\u003e_orm.lazyload()\u003c/code\u003e or\n\u003ccode\u003e_orm.immediateload()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13560\"\u003e#13560\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed memory issue where mapped classes, along with their\n\u003ccode\u003eTable\u003c/code\u003e and \u003ccode\u003e_orm.Mapper\u003c/code\u003e objects, would not be garbage\ncollected after the \u003ccode\u003e_orm.registry\u003c/code\u003e in which they were mapped had\nbeen disposed and dereferenced.  The issue would occur for mappings that\nmade use of \u003ccode\u003e_orm.relationship()\u003c/code\u003e together with constructs such as an\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 `alembic` from 1.19.2 to 1.20.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.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\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 `greenlet` from 3.5.5 to 3.5.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.6 (2026-09-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect a race condition that could lead to garbage collection\nunintentionally being disabled. See \u003ccode\u003ePR 529 \u0026lt;https://github.com/python-greenlet/greenlet/pull/529\u0026gt;\u003c/code\u003e_ by Yurii.\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/abfe740315a9926ff180c622cf02f122c07f9126\"\u003e\u003ccode\u003eabfe740\u003c/code\u003e\u003c/a\u003e Preparing release 3.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e23e3e47df21bbc7a83219621ce4966d349f7d2b\"\u003e\u003ccode\u003ee23e3e4\u003c/code\u003e\u003c/a\u003e Change note for \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/8de830f6df6fefd533fedbe4bb0a2028bcf77372\"\u003e\u003ccode\u003e8de830f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/529\"\u003e#529\u003c/a\u003e from Georggi/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/72d7cacf4cf667f92786db306be095b6041bca5a\"\u003e\u003ccode\u003e72d7cac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/530\"\u003e#530\u003c/a\u003e from python-greenlet/dependabot/github_actions/github...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/ac01b7d1a6b3a4d2477c17a1047af6d0056d69a7\"\u003e\u003ccode\u003eac01b7d\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e18f5a6d2696c031d34cf4933dcdd6a8e37f6f85\"\u003e\u003ccode\u003ee18f5a6\u003c/code\u003e\u003c/a\u003e Simplify GCDisabledGuard constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/6aaf3af698aa7789075a904e5bbb70e24df06553\"\u003e\u003ccode\u003e6aaf3af\u003c/code\u003e\u003c/a\u003e Back to development: 3.5.6\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.5.5...3.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.13.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyJWT 2.14.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/2.14.0/CHANGELOG.rst\"\u003e2.14.0 changelog\u003c/a\u003e for the complete release details and related security advisories.\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.14.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.13.0...2.14.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Harden HMAC key validation against public-key material supplied as JWK,\n  JWKS, array, encoded, BOM-prefixed, DER, or PEM input. See\n  `GHSA-r6x4-923q-g947 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-r6x4-923q-g947\u0026gt;`__,\n  `GHSA-ffc3-869f-jxw9 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-ffc3-869f-jxw9\u0026gt;`__,\n  `GHSA-p4g4-x82p-q773 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-p4g4-x82p-q773\u0026gt;`__,\n  and `GHSA-w2cx-738m-mc7w \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w2cx-738m-mc7w\u0026gt;`__.\n- Reject automatic redirects when ``PyJWKClient`` fetches a JWKS, preventing\n  redirected destinations from being treated as trusted key sources. See\n  `GHSA-9v7f-9g4p-ffgj \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-9v7f-9g4p-ffgj\u0026gt;`__.\n- Limit repeated JWKS refreshes caused by unknown key IDs while preserving\n  normal key-rotation behavior. See\n  `GHSA-2gx3-rcp4-g85q \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-2gx3-rcp4-g85q\u0026gt;`__.\n- Handle deeply nested and malformed JWS/JWK input without uncaught recursion\n  errors or whole-set parsing failures. See\n  `GHSA-8wjv-2p76-3863 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-8wjv-2p76-3863\u0026gt;`__\n  and `GHSA-w6j9-cwv2-h6wq \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w6j9-cwv2-h6wq\u0026gt;`__.\n- Enforce compact JWS encoding rules during decoding. See\n  `GHSA-hxm8-2xgr-2p9m \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-hxm8-2xgr-2p9m\u0026gt;`__.\n- Reject detached-payload arguments for attached JWS inputs. Thanks to `@xclow3n\n  \u0026lt;https://github.com/xclow3n\u0026gt;`__ for reporting this behavior; fixed in commit\n  `37b54877 \u0026lt;https://github.com/jpadilla/pyjwt/commit/37b54877bf7bea67e8149130e96929e3ec798122\u0026gt;`__.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Apply HMAC key validation consistently when keys are loaded through\n  ``PyJWK`` and ``PyJWKClient``. See\n  `GHSA-pxh4-856f-4h89 \u0026amp;lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-pxh4-856f-4h89\u0026amp;gt;`__.\n- Reject empty HMAC keys when represented as JWKs.\n  See `GHSA-pxh4-856f-4h89 \u0026amp;lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-pxh4-856f-4h89\u0026amp;gt;`__.\n\nFixed\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eRaise the documented \u003ccode\u003ePyJWTError\u003c/code\u003e subclass instead of leaking a\u003cbr /\u003e\n\u003ccode\u003eTypeError\u003c/code\u003e when the \u003ccode\u003eexp\u003c/code\u003e, \u003ccode\u003enbf\u003c/code\u003e, or \u003ccode\u003eiat\u003c/code\u003e claim decodes to a\u003cbr /\u003e\nnon-numeric, non-string value such as a list, dict, or \u003ccode\u003enull\u003c/code\u003e.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/jpadilla/pyjwt/commit/c6fe464b356ff4b1ebc9ba62172d331a40aa27df\"\u003e\u003ccode\u003ec6fe464\u003c/code\u003e\u003c/a\u003e release: prepare v2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f5413029ae7a2e31b1367b5303ea86a2f54ccf42\"\u003e\u003ccode\u003ef541302\u003c/code\u003e\u003c/a\u003e style: apply Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/801cd128528c62d9b23fcd161d1a2e1c17982f95\"\u003e\u003ccode\u003e801cd12\u003c/code\u003e\u003c/a\u003e fix: reject public JWK container HMAC keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/af8181ca0bec5e6b372fbba9afbe23702b787ceb\"\u003e\u003ccode\u003eaf8181c\u003c/code\u003e\u003c/a\u003e fix: reject empty HMAC keys from JWKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/ba4853a75fb9676362da17f67d0f64bd18afd4e1\"\u003e\u003ccode\u003eba4853a\u003c/code\u003e\u003c/a\u003e Throttle repeated PyJWKClient refreshes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2798504fa2663364573cf2d1043d8d7fef389499\"\u003e\u003ccode\u003e2798504\u003c/code\u003e\u003c/a\u003e fix: reject DER public keys as HMAC secrets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/8b4e233a22206b34ec1186e912e75c0b2396ac07\"\u003e\u003ccode\u003e8b4e233\u003c/code\u003e\u003c/a\u003e fix: reject loader-accepted PEM variants\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1f8180a211256dfe5cf32294b6753f554a5a4258\"\u003e\u003ccode\u003e1f8180a\u003c/code\u003e\u003c/a\u003e fix: format JWS tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/cff1ac55fe5f1096fd05295b269fce053ee290ab\"\u003e\u003ccode\u003ecff1ac5\u003c/code\u003e\u003c/a\u003e Fix redirect handler return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0a795b8e1f6ef08f634aa7086fc41cc6d5ce3e56\"\u003e\u003ccode\u003e0a795b8\u003c/code\u003e\u003c/a\u003e Reject redirects in PyJWKClient fetches\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.13.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.8 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0 (2026-09-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate use of \u003ccode\u003ecache=None\u003c/code\u003e to suppress caching with the\n\u003ccode\u003e@cached\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation updates.\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/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d\"\u003e\u003ccode\u003e3c082c6\u003c/code\u003e\u003c/a\u003e Release v7.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7\"\u003e\u003ccode\u003eff9a394\u003c/code\u003e\u003c/a\u003e Minor documentation updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e\"\u003e\u003ccode\u003e9b7fe6c\u003c/code\u003e\u003c/a\u003e Deprecate \u003ca href=\"https://github.com/cached\"\u003e\u003ccode\u003e@​cached\u003c/code\u003e\u003c/a\u003e(cache=None).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289\"\u003e\u003ccode\u003e72adda6\u003c/code\u003e\u003c/a\u003e Minor test improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a\"\u003e\u003ccode\u003e8275879\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8\"\u003e\u003ccode\u003e290c50b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.8...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/Serph91P/StreamVault/pull/849","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serph91P%2FStreamVault/issues/849","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/849/packages"}},{"old_version":"7.1.4","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-16T02:22:32.000Z","version_change":"7.1.4 → 7.1.8","issue":{"uuid":"5469471709","node_id":"PR_kwDOTZpjNs8AAAABDs21bA","number":26,"state":"closed","title":"chore(deps): bump the pip-minor-patch group across 1 directory with 76 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-23T02:15:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-16T02:22:32.000Z","updated_at":"2026-09-23T02:15:41.000Z","time_to_close":604387,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-minor-patch","update_count":76,"packages":[{"name":"langchain","old_version":"1.3.13","new_version":"1.4.0","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-core","old_version":"1.4.9","new_version":"1.6.3","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-openai","old_version":"1.3.5","new_version":"1.6.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langgraph","old_version":"1.2.9","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-checkpoint","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pypdfium2","old_version":"5.11.0","new_version":"5.13.0","repository_url":"https://github.com/pypdfium2-team/pypdfium2"},{"name":"duckdb","old_version":"1.5.4","new_version":"1.5.5","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"scikit-learn","old_version":"1.9.0","new_version":"1.9.1","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"joblib","old_version":"1.5.3","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"yfinance","old_version":"1.5.1","new_version":"1.7.0","repository_url":"https://github.com/ranaroussi/yfinance"},{"name":"akshare","old_version":"1.18.64","new_version":"1.18.94","repository_url":"https://github.com/akfamily/akshare"},{"name":"ccxt","old_version":"4.5.64","new_version":"4.5.78","repository_url":"https://github.com/ccxt/ccxt"},{"name":"fastapi","old_version":"0.139.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sse-starlette","old_version":"3.4.5","new_version":"3.4.11","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"ddgs","old_version":"9.14.4","new_version":"9.16.0","repository_url":"https://github.com/deedy5/ddgs"},{"name":"matplotlib","old_version":"3.11.0","new_version":"3.11.2","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"prompt-toolkit","old_version":"3.0.52","new_version":"3.0.53","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"aiohttp","old_version":"3.14.1","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pyjwt","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"aiofile","old_version":"3.11.1","new_version":"3.12.3","repository_url":"https://github.com/mosquito/aiofile"},{"name":"annotated-doc","old_version":"0.0.4","new_version":"0.0.5","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"authlib","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"cachetools","old_version":"7.1.4","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"caio","old_version":"0.10.2","new_version":"0.12.4","repository_url":"https://github.com/mosquito/caio"},{"name":"certifi","old_version":"2026.6.17","new_version":"2026.7.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"2.1.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.9","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cssselect2","old_version":"0.9.0","new_version":"0.10.1","repository_url":"https://github.com/Kozea/cssselect2"},{"name":"curl-cffi","old_version":"0.15.0","new_version":"0.16.3","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"cyclopts","old_version":"4.21.0","new_version":"4.25.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"fonttools","old_version":"4.63.0","new_version":"4.65.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"griffelib","old_version":"2.1.0","new_version":"2.3.0"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"idna","old_version":"3.18","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"jaraco-functools","old_version":"4.5.0","new_version":"4.6.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jiter","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"joserfc","old_version":"1.7.3","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"kiwisolver","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"langchain-protocol","old_version":"0.0.18","new_version":"0.0.19","repository_url":"https://github.com/langchain-ai/agent-protocol"},{"name":"langgraph-sdk","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langsmith","old_version":"0.10.2","new_version":"0.12.4","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"llvmlite","old_version":"0.48.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"multidict","old_version":"6.7.1","new_version":"6.8.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"narwhals","old_version":"2.23.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"numba","old_version":"0.66.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"opentelemetry-api","old_version":"1.43.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.9","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.2","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"peewee","old_version":"4.2.1","new_version":"4.5.1","repository_url":"https://github.com/coleifer/peewee"},{"name":"platformdirs","old_version":"4.10.0","new_version":"4.11.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"7.35.1","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.47.0","new_version":"2.49.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyphen","old_version":"0.17.2","new_version":"0.18.1","repository_url":"https://github.com/Kozea/Pyphen"},{"name":"pytz","old_version":"2026.2","new_version":"2026.3.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"regex","old_version":"2026.7.10","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"simplejson","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"soupsieve","old_version":"2.8.4","new_version":"2.9.2","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tiktoken","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"tqdm","old_version":"4.68.4","new_version":"4.70.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"tzdata","old_version":"2026.3","new_version":"2026.4","repository_url":"https://github.com/python/tzdata"},{"name":"uncalled-for","old_version":"0.3.2","new_version":"0.4.0","repository_url":"https://github.com/chrisguidry/uncalled-for"},{"name":"wcwidth","old_version":"0.8.2","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webencodings","old_version":"0.5.1","new_version":"0.6.1","repository_url":"https://github.com/CourtBouillon/webencodings"},{"name":"websocket-client","old_version":"1.9.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"yarl","old_version":"1.24.2","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 76 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain](https://github.com/langchain-ai/langchain) | `1.3.13` | `1.4.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.9` | `1.6.3` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.3.5` | `1.6.2` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.9` | `1.2.11` |\n| [langgraph-checkpoint](https://github.com/langchain-ai/langgraph) | `4.1.1` | `4.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n| [pypdfium2](https://github.com/pypdfium2-team/pypdfium2) | `5.11.0` | `5.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.5.4` | `1.5.5` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |\n| [yfinance](https://github.com/ranaroussi/yfinance) | `1.5.1` | `1.7.0` |\n| [akshare](https://github.com/akfamily/akshare) | `1.18.64` | `1.18.94` |\n| [ccxt](https://github.com/ccxt/ccxt) | `4.5.64` | `4.5.78` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.52.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.5` | `3.4.11` |\n| [ddgs](https://github.com/deedy5/ddgs) | `9.14.4` | `9.16.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.0` | `3.11.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.52` | `3.0.53` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.14.1` | `3.14.3` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.14.0` |\n| [aiofile](https://github.com/mosquito/aiofile) | `3.11.1` | `3.12.3` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.4` | `0.0.5` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.2` | `1.8.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.4` | `7.1.8` |\n| [caio](https://github.com/mosquito/caio) | `0.10.2` | `0.12.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.6.17` | `2026.7.22` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.1.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.9` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cssselect2](https://github.com/Kozea/cssselect2) | `0.9.0` | `0.10.1` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.15.0` | `0.16.3` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.21.0` | `4.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.65.0` |\n| griffelib | `2.1.0` | `2.3.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [idna](https://github.com/kjd/idna) | `3.18` | `3.19` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.5.0` | `4.6.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.16.0` | `0.17.0` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.3` | `1.7.5` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |\n| [langchain-protocol](https://github.com/langchain-ai/agent-protocol) | `0.0.18` | `0.0.19` |\n| [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.4.2` | `0.4.4` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.10.2` | `0.12.4` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.48.0` | `0.49.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.7.1` | `6.8.0` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.23.0` | `2.26.0` |\n| [numba](https://github.com/numba/numba) | `0.66.0` | `0.67.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.43.0` | `1.44.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.9` | `3.12.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.2` | `26.3` |\n| [peewee](https://github.com/coleifer/peewee) | `4.2.1` | `4.5.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.10.0` | `4.11.8` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.35.1` | `7.36.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.47.0` | `2.49.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pyphen](https://github.com/Kozea/Pyphen) | `0.17.2` | `0.18.1` |\n| [pytz](https://github.com/stub42/pytz) | `2026.2` | `2026.3.post1` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.10` | `2026.9.10` |\n| [simplejson](https://github.com/simplejson/simplejson) | `4.1.1` | `4.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.4` | `2.9.2` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.13.0` | `0.14.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.68.4` | `4.70.1` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |\n| [uncalled-for](https://github.com/chrisguidry/uncalled-for) | `0.3.2` | `0.4.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.2` | `0.8.3` |\n| [webencodings](https://github.com/CourtBouillon/webencodings) | `0.5.1` | `0.6.1` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.0` | `1.9.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.24.2` | `1.24.5` |\n\n\nUpdates `langchain` from 1.3.13 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/langchain-ai/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-perplexity==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-perplexity==1.3.2\u003c/p\u003e\n\u003cp\u003erelease(perplexity): 1.4.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37993\"\u003e#37993\u003c/a\u003e)\nfeat(perplexity): \u003ccode\u003ebind_tools\u003c/code\u003e and Responses-API tool round-trip (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37934\"\u003e#37934\u003c/a\u003e)\nhotfix(openai): min core dep (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37990\"\u003e#37990\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.3.5\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.4.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38983\"\u003e#38983\u003c/a\u003e)\nchore: bump pillow from 12.2.0 to 12.3.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38999\"\u003e#38999\u003c/a\u003e)\nfeat(core): add \u003ccode\u003ereasoning_effort\u003c/code\u003e as a standard chat model parameter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38887\"\u003e#38887\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38797\"\u003e#38797\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain==1.4.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain==1.3.18\u003c/p\u003e\n\u003cp\u003edocs(langchain): runnable \u003ccode\u003elangchain.mcp\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39976\"\u003e#39976\u003c/a\u003e)\nfeat(langchain): \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace, \u003ccode\u003eMCPAdapter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39939\"\u003e#39939\u003c/a\u003e)\nperf(anthropic,langchain): omit middleware trace inputs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40098\"\u003e#40098\u003c/a\u003e)\nfix(langchain): include model destination in agent tool routing (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38355\"\u003e#38355\u003c/a\u003e)\nchore(langchain): bump vcrpy test dependency minimum to \u003ccode\u003e\u0026gt;=8.2.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39942\"\u003e#39942\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain==1.4.0a4\u003c/h2\u003e\n\u003cp\u003eInitial release\u003c/p\u003e\n\u003cp\u003erelease(langchain): 1.4.0a4\ntest(langchain): cover mixed-era ClientGroup and group elicitation\nUpdate libs/langchain_v1/langchain/mcp/adapter.py\nfix(langchain): drive MCP elicitation via member session for fastmcp 4.0.1\nfix(sdk): use latest fastmcp and rm reentrant impl\ncr\ncr\nrefactor(langchain): inline MCP client arming into \u003ccode\u003e__init__\u003c/code\u003e\nrefactor(langchain): stamp an arm marker instead of introspecting the handler closure\nfix(langchain): gate MCP interrupt routing on the negotiated protocol era\nrefactor(langchain): drop MCP \u003ccode\u003eelicitation\u003c/code\u003e flag, derive interrupt routing from the client\nfix(sdk): add _ReentrantClientGroup\nfix(langchain): narrow \u003ccode\u003eMCPAdapter.client\u003c/code\u003e union in mcp tests for mypy\nchore(langchain): format \u003ccode\u003emcp/adapter.py\u003c/code\u003e\nrelease(langchain): 1.4.0a3\nfeat(langchain): group MCP tool metadata under an \u003ccode\u003emcp\u003c/code\u003e namespace\nrefactor(langchain): stop exporting \u003ccode\u003eMCPAdapterTarget\u003c/code\u003e from \u003ccode\u003elangchain.mcp\u003c/code\u003e\nrefactor(langchain): rename \u003ccode\u003econvert_mcp_tool_to_langchain_tool\u003c/code\u003e to \u003ccode\u003eas_langchain_tool\u003c/code\u003e\nrefactor(langchain): rename \u003ccode\u003eMCPAdapter.get_tools\u003c/code\u003e to \u003ccode\u003elist_tools\u003c/code\u003e\nfeat(langchain): expose \u003ccode\u003ecache_mode\u003c/code\u003e on \u003ccode\u003eMCPAdapter.get_tools\u003c/code\u003e\nchore(langchain): require \u003ccode\u003efastmcp\u003c/code\u003e 4.0.0\nfeat(langchain): accept a \u003ccode\u003eClientGroup\u003c/code\u003e as an \u003ccode\u003eMCPAdapter\u003c/code\u003e target\nfeat(langchain): mark the \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace as beta\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/langchain-ai/langchain/commit/79cab2dc7f58be720cac43db3677b4c1fd971f91\"\u003e\u003ccode\u003e79cab2d\u003c/code\u003e\u003c/a\u003e release(anthropic): 1.7.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40181\"\u003e#40181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1e6a4f0b45b60475f566f3ad49fb32ea99d22233\"\u003e\u003ccode\u003e1e6a4f0\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40171\"\u003e#40171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/8330dfe987988c1bcbbc5e8d9af9a67e5a1c2744\"\u003e\u003ccode\u003e8330dfe\u003c/code\u003e\u003c/a\u003e docs(langchain): runnable \u003ccode\u003elangchain.mcp\u003c/code\u003e examples (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39976\"\u003e#39976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/280442b54c80db2175ced4a20ab59eab86a32dc1\"\u003e\u003ccode\u003e280442b\u003c/code\u003e\u003c/a\u003e feat(langchain): \u003ccode\u003elangchain.mcp\u003c/code\u003e namespace, \u003ccode\u003eMCPAdapter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39939\"\u003e#39939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f5ee2b65f4cf2f1a9fe688bcae6ad2af966582bd\"\u003e\u003ccode\u003ef5ee2b6\u003c/code\u003e\u003c/a\u003e chore(chroma): bump Pygments security constraint (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/234255c1c7427b5ed6dc505abad41ddfa6c9ff8f\"\u003e\u003ccode\u003e234255c\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40009\"\u003e#40009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/79e0e4adbafc1fda1ca9956e184be8b8819aa7ab\"\u003e\u003ccode\u003e79e0e4a\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/langchain (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40149\"\u003e#40149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e90201b7af5cd32762744c974ca9ce3f27efc9d8\"\u003e\u003ccode\u003ee90201b\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40150\"\u003e#40150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4240248e7b08ed72e85ce0744350c33beddb0ac8\"\u003e\u003ccode\u003e4240248\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40148\"\u003e#40148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/530290a9d445069d80a68cdcd4d0da768f2aa2b0\"\u003e\u003ccode\u003e530290a\u003c/code\u003e\u003c/a\u003e chore(deps): bump uv to 0.12.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40092\"\u003e#40092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain==1.3.13...langchain==1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 1.4.9 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/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.6.3\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.2\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40407\"\u003e#40407\u003c/a\u003e)\nfeat(core): Allow model name and provider tracing metadata override based on gateway response (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40406\"\u003e#40406\u003c/a\u003e)\ntest(core): cover the deprecated \u003ccode\u003e.text()\u003c/code\u003e access path (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40243\"\u003e#40243\u003c/a\u003e)\ndocs(core): remove stale Args/Raises entries from FileCallbackHandler._write and ChatGeneration.set_text (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40211\"\u003e#40211\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.1\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40209\"\u003e#40209\u003c/a\u003e)\nfeat(openai): support async tools (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40208\"\u003e#40208\u003c/a\u003e)\nchore(deps): bump mistune from 3.3.0 to 3.3.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40150\"\u003e#40150\u003c/a\u003e)\nchore(deps): bump tornado from 6.5.7 to 6.5.8 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40113\"\u003e#40113\u003c/a\u003e)\nfix(core): avoid mutation in google-genai standard content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40023\"\u003e#40023\u003c/a\u003e)\nfix(core): avoid mutation in bedrock converse standard content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40022\"\u003e#40022\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.6.0\u003c/p\u003e\n\u003cp\u003erevert: release(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39971\"\u003e#39971\u003c/a\u003e)\nrelease(core): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39967\"\u003e#39967\u003c/a\u003e)\nfix(core): shore up indexing in genai v1 streaming content (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39964\"\u003e#39964\u003c/a\u003e)\nfix(core): make \u003ccode\u003eStructuredTool\u003c/code\u003e JSON-serializable (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39631\"\u003e#39631\u003c/a\u003e)\nchore(deps): bump minor and patch dependencies (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39869\"\u003e#39869\u003c/a\u003e)\nrelease(core): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39832\"\u003e#39832\u003c/a\u003e)\nfeat(core): propagate gateway information on error path (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39829\"\u003e#39829\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.6.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.5.6\u003c/p\u003e\n\u003cp\u003erelease(core): 1.6.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39760\"\u003e#39760\u003c/a\u003e)\nfix(core): resolve postponed annotations in \u003ccode\u003eStructuredTool._injected_args_keys\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39602\"\u003e#39602\u003c/a\u003e)\nfeat(core): add standard model exception types (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39538\"\u003e#39538\u003c/a\u003e)\nfix(core): allow deserializing \u003ccode\u003eRunnablePick\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39753\"\u003e#39753\u003c/a\u003e)\nfix(core): make \u003ccode\u003econvert_to_openai_function\u003c/code\u003e handle callables and non-dict mappings (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39750\"\u003e#39750\u003c/a\u003e)\nfix(core): make subprocess and temporary file tests portable on Windows (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39664\"\u003e#39664\u003c/a\u003e)\nfix(core): fail fast when tool schemas can't resolve forward refs during serialization (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39570\"\u003e#39570\u003c/a\u003e)\ntest(core): avoid version-dependent runnable snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39705\"\u003e#39705\u003c/a\u003e)\nfix(core): require all nested properties for strict tool schemas (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39306\"\u003e#39306\u003c/a\u003e)\nfix(core): remove stale sync-stream \u003ccode\u003exfail\u003c/code\u003e [closes \u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39720\"\u003e#39720\u003c/a\u003e] (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39723\"\u003e#39723\u003c/a\u003e)\nperf(core): Lazily import transformers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38037\"\u003e#38037\u003c/a\u003e)\nfix(core): accept non-dict Mapping values in mustache templates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39680\"\u003e#39680\u003c/a\u003e)\ndocs(core): clarify \u003ccode\u003eRunnable\u003c/code\u003e pipe coercion [closes \u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39075\"\u003e#39075\u003c/a\u003e] (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39707\"\u003e#39707\u003c/a\u003e)\nfix(core): finalize chain-group runs on \u003ccode\u003eBaseException\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39699\"\u003e#39699\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.5.6\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.5.5\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/langchain-ai/langchain/commit/348c9dc572599947d2d7d33d6a5b8b936e92a1d4\"\u003e\u003ccode\u003e348c9dc\u003c/code\u003e\u003c/a\u003e release(core): 1.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40407\"\u003e#40407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e0e1557bd6ebae13915c59d942ef2824b51a10c6\"\u003e\u003ccode\u003ee0e1557\u003c/code\u003e\u003c/a\u003e feat(core): Allow model name and provider tracing metadata override based on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/67ee6cb63dd9ae7f3a4dfedc3095652bce15a125\"\u003e\u003ccode\u003e67ee6cb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40399\"\u003e#40399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d5d7cc56ab3932c9a10dc76b31cd5d4a778c3f2a\"\u003e\u003ccode\u003ed5d7cc5\u003c/code\u003e\u003c/a\u003e release(anthropic): 1.7.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40387\"\u003e#40387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4436bd2b67814877a3797613de28882adcdb6edf\"\u003e\u003ccode\u003e4436bd2\u003c/code\u003e\u003c/a\u003e fix(anthropic): preserve invalid tool use blocks (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40372\"\u003e#40372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/443154df9db5251d73730e1de3eb63bf352e586f\"\u003e\u003ccode\u003e443154d\u003c/code\u003e\u003c/a\u003e feat(huggingface): use torch.accelerator for device-agnostic device count det...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/3539ca08d92e10b65b6f3117cfd657b16b05c865\"\u003e\u003ccode\u003e3539ca0\u003c/code\u003e\u003c/a\u003e fix(huggingface): remove retired IPEX backend (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39649\"\u003e#39649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/45d94fb0fa10bf8cab95dcb1e76c2bc39165535d\"\u003e\u003ccode\u003e45d94fb\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40358\"\u003e#40358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/60357692c76651a7cd6153496a24658fa355bdcc\"\u003e\u003ccode\u003e6035769\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a7b0f0ae50acebb527a25e153ff16621d37ba650\"\u003e\u003ccode\u003ea7b0f0a\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40318\"\u003e#40318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.9...langchain-core==1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-openai` from 1.3.5 to 1.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-openai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-openai==1.6.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.6.1\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\nfix(openai): add GPT-6 Astra reasoning efforts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40330\"\u003e#40330\u003c/a\u003e)\nchore(deps): bump httpx2 from 2.10.0 to 2.12.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40309\"\u003e#40309\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.6.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.6.0\u003c/p\u003e\n\u003cp\u003efix(openai): bump \u003ccode\u003emax_completion_tokens\u003c/code\u003e in cache breakpoint integration test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40284\"\u003e#40284\u003c/a\u003e)\nrelease(openai): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40268\"\u003e#40268\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40217\"\u003e#40217\u003c/a\u003e)\nfix(openai): support Azure AD auth with OpenAI 3.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40190\"\u003e#40190\u003c/a\u003e)\nfeat(openai): support async tools (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40208\"\u003e#40208\u003c/a\u003e)\nfeat(openai): support \u003ccode\u003econfiguration_update\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40201\"\u003e#40201\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40171\"\u003e#40171\u003c/a\u003e)\nfix(openai): route \u003ccode\u003egpt-5.6-sol\u003c/code\u003e to responses API (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40133\"\u003e#40133\u003c/a\u003e)\nchore(openai): fix tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39972\"\u003e#39972\u003c/a\u003e)\nfix(openai): correct \u003ccode\u003ereasoning_effort_levels\u003c/code\u003e for gpt-5 and gpt-5.1 profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39936\"\u003e#39936\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39954\"\u003e#39954\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.6.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.5.2\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.6.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39762\"\u003e#39762\u003c/a\u003e)\nfeat(core): add standard model exception types (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39538\"\u003e#39538\u003c/a\u003e)\nfix(openai): raise clear error on unexpected response type in \u003ccode\u003e_create_chat_result\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39731\"\u003e#39731\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.5.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.5.1\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.5.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39719\"\u003e#39719\u003c/a\u003e)\nfix(openai): preserve reasoning item boundaries (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39278\"\u003e#39278\u003c/a\u003e)\nrelease(openai): 1.5.2a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39709\"\u003e#39709\u003c/a\u003e)\nfeat(openai): extract gateway metadata from response headers when available (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39706\"\u003e#39706\u003c/a\u003e)\nchore(openai): update snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39657\"\u003e#39657\u003c/a\u003e)\nfix(openai): support o-series models in \u003ccode\u003eget_num_tokens_from_messages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38710\"\u003e#38710\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.5.2a1\u003c/h2\u003e\n\u003cp\u003eInitial release\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.5.2a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39709\"\u003e#39709\u003c/a\u003e)\nfeat(openai): extract gateway metadata from response headers when available (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39706\"\u003e#39706\u003c/a\u003e)\nchore(openai): update snapshots (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39657\"\u003e#39657\u003c/a\u003e)\nfix(openai): support o-series models in \u003ccode\u003eget_num_tokens_from_messages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/38710\"\u003e#38710\u003c/a\u003e)\nrelease(openai): 1.5.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39653\"\u003e#39653\u003c/a\u003e)\nfix(openai): preserve streamed encrypted reasoning (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39635\"\u003e#39635\u003c/a\u003e)\nchore(infra): support langsmith gateway in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39651\"\u003e#39651\u003c/a\u003e)\nrelease(openai): 1.5.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/39629\"\u003e#39629\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/langchain-ai/langchain/commit/60357692c76651a7cd6153496a24658fa355bdcc\"\u003e\u003ccode\u003e6035769\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40339\"\u003e#40339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a7b0f0ae50acebb527a25e153ff16621d37ba650\"\u003e\u003ccode\u003ea7b0f0a\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40318\"\u003e#40318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1611938f49dda48aa069d1fdce429430257488b7\"\u003e\u003ccode\u003e1611938\u003c/code\u003e\u003c/a\u003e fix(openai): add GPT-6 Astra reasoning efforts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40330\"\u003e#40330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f092c9a78b3c532ef4c01935c0d4514209ff9f96\"\u003e\u003ccode\u003ef092c9a\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40317\"\u003e#40317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/22f3421aeedec55962f712a34d86d9683bf6cf59\"\u003e\u003ccode\u003e22f3421\u003c/code\u003e\u003c/a\u003e docs: update OpenWiki (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40218\"\u003e#40218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/1c40140b3daf80c5baa7427d707ef2beb6c404b2\"\u003e\u003ccode\u003e1c40140\u003c/code\u003e\u003c/a\u003e chore(deps): bump httpx2 from 2.10.0 to 2.12.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40309\"\u003e#40309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/db613a96050bc6e594fdcd618af7532264dcceb8\"\u003e\u003ccode\u003edb613a9\u003c/code\u003e\u003c/a\u003e fix(openai): bump \u003ccode\u003emax_completion_tokens\u003c/code\u003e in cache breakpoint integration tes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9f2eb7f46719742875ebea9e31d53e168e8b81a2\"\u003e\u003ccode\u003e9f2eb7f\u003c/code\u003e\u003c/a\u003e release(openai): 1.6.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40268\"\u003e#40268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/765eb32901fa524e1428f94a9ee91b371a63ab62\"\u003e\u003ccode\u003e765eb32\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40277\"\u003e#40277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e670c7a03ba36fd1516f0185f7ec1186c89aa471\"\u003e\u003ccode\u003ee670c7a\u003c/code\u003e\u003c/a\u003e chore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/40258\"\u003e#40258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-openai==1.3.5...langchain-openai==1.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph` from 1.2.9 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph==1.2.11\u003c/h2\u003e\n\u003cp\u003eChanges since 1.2.10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8595\"\u003e#8595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8523\"\u003e#8523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group across 1 directory with 7 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8533\"\u003e#8533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group across 1 directory with 5 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8532\"\u003e#8532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-postgres): 3.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8565\"\u003e#8565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(checkpoint): collect writes at plain-value seed in delta channel history (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump types-requests from 2.33.0.20260518 to 2.33.0.20260712 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 48.0.1 to 50.0.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8528\"\u003e#8528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-sqlite): 3.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8481\"\u003e#8481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erelease(checkpoint-postgres): 3.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8480\"\u003e#8480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.2.10\u003c/h2\u003e\n\u003cp\u003eChanges since 1.2.9\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8462\"\u003e#8462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump jupyterlab from 4.5.9 to 4.5.10 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8440\"\u003e#8440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump setuptools from 80.9.0 to 83.0.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8435\"\u003e#8435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): type v3 stream_events return and native projections (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8389\"\u003e#8389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erevert(langgraph): delete TracePolicy (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8403\"\u003e#8403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): drop tags from TracePolicy (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8402\"\u003e#8402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8362\"\u003e#8362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump mistune from 3.2.1 to 3.3.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8317\"\u003e#8317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump soupsieve from 2.8.1 to 2.8.4 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8318\"\u003e#8318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(cli): allow langgraph-api versions up to 1.0.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8319\"\u003e#8319\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/langchain-ai/langgraph/commit/644815f9e5bc52ad8f7a5227a456227e9c3e639b\"\u003e\u003ccode\u003e644815f\u003c/code\u003e\u003c/a\u003e release(langgraph): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8595\"\u003e#8595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/7d6b5790ba84ce38c26f27a533d8419a31103c36\"\u003e\u003ccode\u003e7d6b579\u003c/code\u003e\u003c/a\u003e feat(langgraph): expose \u003ccode\u003etrace_policy\u003c/code\u003e on \u003ccode\u003eadd_node\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8523\"\u003e#8523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d56666f7fbf0d380ad84cdf0cbe5aa48ab0cc086\"\u003e\u003ccode\u003ed56666f\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group across 1 directory with 7 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/6a2822d3c77dad49a96718de73095f18717728be\"\u003e\u003ccode\u003e6a2822d\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group across 1 directory with 5 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/fde3068970679184b68d3d068a92c83c966a4888\"\u003e\u003ccode\u003efde3068\u003c/code\u003e\u003c/a\u003e release(checkpoint-postgres): 3.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8565\"\u003e#8565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/f55e77274dad40897ef7b2d52cc7c0b85b792247\"\u003e\u003ccode\u003ef55e772\u003c/code\u003e\u003c/a\u003e release(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/a90ab4435853b8a5b6f82b20220b4c76af0e46d1\"\u003e\u003ccode\u003ea90ab44\u003c/code\u003e\u003c/a\u003e fix(checkpoint): collect writes at plain-value seed in delta channel history ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/ea5f9cc9fb8c4b123769daab4753af34de29b1e9\"\u003e\u003ccode\u003eea5f9cc\u003c/code\u003e\u003c/a\u003e chore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/36a505ac65e956da09e93cc753609635a511047e\"\u003e\u003ccode\u003e36a505a\u003c/code\u003e\u003c/a\u003e test(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d569e18f4bd78b7652cb88c84b8dd098057e4f7d\"\u003e\u003ccode\u003ed569e18\u003c/code\u003e\u003c/a\u003e fix(checkpoint-postgres): find plain-value seeds when walking delta history (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langgraph/compare/1.2.9...1.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph-checkpoint` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph-checkpoint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph-checkpoint==4.2.0\u003c/h2\u003e\n\u003cp\u003eChanges since checkpoint==4.1.1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(checkpoint): collect writes at plain-value seed in delta channel history (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8526\"\u003e#8526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 4 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8490\"\u003e#8490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(checkpoint,checkpoint-postgres): add opt-in omit_expired to skip expired rows on read (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8354\"\u003e#8354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 5 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8248\"\u003e#8248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/checkpoint (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8173\"\u003e#8173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: standardize package \u003ccode\u003eREADME.md\u003c/code\u003e structure (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8064\"\u003e#8064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: migrate Python type checking to ty (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8002\"\u003e#8002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the major group in /libs/checkpoint with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/7967\"\u003e#7967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the minor-and-patch group in /libs/checkpoint with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/7960\"\u003e#7960\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/langchain-ai/langgraph/commit/f55e77274dad40897ef7b2d52cc7c0b85b792247\"\u003e\u003ccode\u003ef55e772\u003c/code\u003e\u003c/a\u003e release(checkpoint): 4.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8563\"\u003e#8563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/a90ab4435853b8a5b6f82b20220b4c76af0e46d1\"\u003e\u003ccode\u003ea90ab44\u003c/code\u003e\u003c/a\u003e fix(checkpoint): collect writes at plain-value seed in delta channel history ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/ea5f9cc9fb8c4b123769daab4753af34de29b1e9\"\u003e\u003ccode\u003eea5f9cc\u003c/code\u003e\u003c/a\u003e chore: enforce PLC0415 in tests for the remaining packages (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8547\"\u003e#8547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/36a505ac65e956da09e93cc753609635a511047e\"\u003e\u003ccode\u003e36a505a\u003c/code\u003e\u003c/a\u003e test(checkpoint-postgres,checkpoint-sqlite): run the conformance suite (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8537\"\u003e#8537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/d569e18f4bd78b7652cb88c84b8dd098057e4f7d\"\u003e\u003ccode\u003ed569e18\u003c/code\u003e\u003c/a\u003e fix(checkpoint-postgres): find plain-value seeds when walking delta history (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/f22af6248c93df08b553e9a264f6367797e0fddb\"\u003e\u003ccode\u003ef22af62\u003c/code\u003e\u003c/a\u003e chore: enable RUF100 and clear unused noqa directives (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8546\"\u003e#8546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/658541c4960f329864a2523fc7d52427e8190bed\"\u003e\u003ccode\u003e658541c\u003c/code\u003e\u003c/a\u003e chore(checkpoint-postgres,checkpoint-sqlite): enable PLC0415 lint rule (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/8540\"\u003e#8540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/fb3d5f0399222504e015fe959e0e79fdc6e00a65\"\u003e\u003ccode\u003efb3d5f0\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/cli/js-examples with 8 u...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/01521c1b1cc4c035f64b9be40f2913285128f526\"\u003e\u003ccode\u003e01521c1\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/cli/js-monorepo-example ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langgraph/commit/cd62febcfae628d0930d1f7d3cb3b5919d4b800f\"\u003e\u003ccode\u003ecd62feb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the minor-and-patch group in /libs/checkpoint with 4 update...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langgraph/compare/checkpoint==4.1.1...checkpoint==4.2.0\"\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.2.2 to 1.2.3\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.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\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/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.3] - 2026-08-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStrip a leading UTF-8 BOM from \u003ccode\u003e.env\u003c/code\u003e file contents so the first variable is no longer silently lost when the file is saved with BOM (e.g. by some JetBrains IDEs on Windows) by [\u003ca href=\"https://github.com/h1whelan\"\u003e\u003ccode\u003e@​h1whelan\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/640\"\u003e#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eset_key\u003c/code\u003e now escapes backslashes, so values containing them (Windows paths, regular expressions) survive a write/read round-trip. Quoted values ending in an escaped backslash are no longer mis-parsed as an escaped quote, which used to swallow the following lines by [\u003ca href=\"https://github.com/dchaudhari7177\"\u003e\u003ccode\u003e@​dchaudhari7177\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edotenv run\u003c/code\u003e now prints a friendly error instead of a traceback when no command is given by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache the parsed result for empty \u003ccode\u003e.env\u003c/code\u003e files so repeated \u003ccode\u003edotenv_values\u003c/code\u003e/\u003ccode\u003eload_dotenv\u003c/code\u003e calls no longer re-read the file by [\u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\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/49515afee2d50c33cad9419b3800b3a0dc93fc59\"\u003e\u003ccode\u003e49515af\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.2 → 1.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ac846ff2760b65470e769d7eed33e540f0934e1\"\u003e\u003ccode\u003e8ac846f\u003c/code\u003e\u003c/a\u003e chore: add release runbook (RELEASING.md) and make release target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/bb31c944fb4b40e8dea59587f525840c38326166\"\u003e\u003ccode\u003ebb31c94\u003c/code\u003e\u003c/a\u003e docs: add 1.2.3 release notes (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/606\"\u003e#606\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/638\"\u003e#638\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f7b18d9c72d1abcc2ad4023424b84f5bee30d266\"\u003e\u003ccode\u003ef7b18d9\u003c/code\u003e\u003c/a\u003e fix: round-trip backslashes through set_key (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/751f8c148222e58aa173c83c4e5e6cfccb2cc124\"\u003e\u003ccode\u003e751f8c1\u003c/code\u003e\u003c/a\u003e ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions gro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/f1937b68f338d7ebd7754da377ca08b2f0df8dbb\"\u003e\u003ccode\u003ef1937b6\u003c/code\u003e\u003c/a\u003e chore(deps): update mkdocs-include-markdown-plugin requirement from \u0026gt;=6.0.0 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/45b93720dd5e9e127d0be3971a04855d34e464d8\"\u003e\u003ccode\u003e45b9372\u003c/code\u003e\u003c/a\u003e chore(deps): update pytest requirement from \u0026gt;=3.9 to \u0026gt;=9.0.3 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72896e9244d2a1ff8d5e1934d3df8a35c813799a\"\u003e\u003ccode\u003e72896e9\u003c/code\u003e\u003c/a\u003e docs: fix broken mkdocs link in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/72754a16a4743e4c92edf87ce59ba0e4ff78758d\"\u003e\u003ccode\u003e72754a1\u003c/code\u003e\u003c/a\u003e ci(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 in the github-a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/078325e92558330e9addc661b789c7b6123fa73c\"\u003e\u003ccode\u003e078325e\u003c/code\u003e\u003c/a\u003e ci(security): harden CI/CD supply chain with SHA pinning and least-privilege ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdfium2` from 5.11.0 to 5.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/releases\"\u003epypdfium2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease 5.13.0\u003c/h2\u003e\n\u003ch3\u003eSummary\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExperimental \u003ccode\u003epyemscripten_2026_0_wasm32\u003c/code\u003e (Pyodide) build support added. \u003cem\u003eHowever, the resulting builds are flaky at runtime and subject to various types of random crashes. Freezes on shutdown have also been observed.\u003c/em\u003e\nWhile these issues persist, PyEmscripten wheels will not be uploaded to PyPI, but they are included in the release process and can be downloaded from GitHub on an experimental basis. If you can help track down and fix these issues, please reach out.\nNote: Our PyEmscripten wheels are bigger than usual, as they are built with debug symbols (a non-debug build is not considered useful at this stage).\u003c/li\u003e\n\u003cli\u003eFixed compatibility with Python 3.6 and 3.7.\n\u003cul\u003e\n\u003cli\u003eRuntime support was inadvertently broken due to a faulty cached property backport which held only one cache per class, not per instance as should have been.\nThe accidental loss of caches broke key assumptions of our autoclose logic, which relies on \u003ccode\u003ecached_property\u003c/code\u003e since 5.8.0. (Earlier versions that did not make extensive use of cached properties might work but have not been explicitly tested.)\u003c/li\u003e\n\u003cli\u003eThis release replaces both \u003ccode\u003efunctools.cached_property\u003c/code\u003e and the faulty \u003ccode\u003efunctools.lru_cache()\u003c/code\u003e based backport with our own, backward compatible \u003ccode\u003ecached_property\u003c/code\u003e implementation along with thorough documentation.\u003c/li\u003e\n\u003cli\u003eAlso, fixed setup (i.e. source installation) with Python 3.6 and its max available setup dependency versions (that is, \u003ccode\u003esetuptools\u003c/code\u003e 59). This had probably been broken for a long time. (A few non-breaking issues remain, e.g. for some reason we end up with a \u003ccode\u003epurelib\u003c/code\u003e directory, but it should be \u003ccode\u003eplatlib\u003c/code\u003e.)\u003c/li\u003e\n\u003cli\u003eBear in mind that ctypesgen continues to require Python \u003ccode\u003e\u0026gt;=3.8\u003c/code\u003e at this time (3.6 compat not being a priority in that case), but you can install with \u003ccode\u003e--no-build-isolation\u003c/code\u003e and let the reference bindings be used, or try adding ctypesgen's \u003ccode\u003esrc/\u003c/code\u003e to \u003ccode\u003ePYTHONPATH\u003c/code\u003e to bypass setup, and see how it goes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNote: We do not plan to (and practically cannot) keep up compatibility with outdated Python versions indefinitely.\u003c/strong\u003e In particular, setup compatibility may be dropped sooner or later in favor of contemporary Python packaging concepts, like migrating as much as possible to \u003ccode\u003epyproject.toml\u003c/code\u003e. That said, we are happy to restore compatibility at this point, and fix any \u003cem\u003eunintentional\u003c/em\u003e breakage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eMANIFEST.in\u003c/code\u003e missing Windows spoof headers, which resulted in subtly incorrect bindings when installing from an sdist on Windows, as seen in test failures. (Release wheels have been unaffected and passed the test suite, so this issue went unnoticed for a while.)\u003c/li\u003e\n\u003cli\u003eBumped \u003ccode\u003egn-dist\u003c/code\u003e from \u003ccode\u003e2407.1\u003c/code\u003e to \u003ccode\u003e2407.3\u003c/code\u003e. Made its setup python 3.6 compatible likewise (wheels should have worked before now). Changed versioning and release process so that CI no longer needs to push to the repository (may eventually become a blueprint for pypdfium2 itself). More documentation added, including \u003ccode\u003emanylinux2014\u003c/code\u003e POC.\u003c/li\u003e\n\u003cli\u003eInternal improvements (non-exhaustive):\n\u003cul\u003e\n\u003cli\u003eProperly clean up \u003ccode\u003e*.egg-info/\u003c/code\u003e and \u003ccode\u003ebuild/\u003c/code\u003e before packaging, to avoid mad file inclusion bugs (ran into this while working on setup include rules).\u003c/li\u003e\n\u003cli\u003eMigrated from requirements files to PEP 735 dependency groups (\u003ccode\u003epyproject.toml\u003c/code\u003e).\nRecent enough \u003ccode\u003epip\u003c/code\u003e should be available to Python \u0026gt;= 3.9. For compatibility with older versions, feel free to use \u003ccode\u003e./utils/misc/install_dep_group.py\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eApplied dependency cooldowns to internal callers of \u003ccode\u003epip install\u003c/code\u003e. Always use virtual environments in CI. Use lockfiles in sensitive areas (e.g. publish jobs).\u003c/li\u003e\n\u003cli\u003eRearranged \u0026amp; improved utilities. Cleaner distinction between \u003ccode\u003esetupsrc/\u003c/code\u003e and \u003ccode\u003eutils/\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWork around persistent i686 container network issues by downgrading host runner to \u003ccode\u003eubuntu-24.04\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eLet \u003ccode\u003esetupsrc/\u003c/code\u003e share code from \u003ccode\u003esrc/\u003c/code\u003e through a \u003ccode\u003epypdfium2_cfg._shared\u003c/code\u003e submodule that can be added to \u003ccode\u003esys.path\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild info\u003c/h3\u003e\n\u003cp\u003eThis release was made with the following build strategies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePBIN: \u003ccode\u003e[macosx_arm64, macosx_x86_64, win_amd64, win_arm64, win32, manylinux_x86_64, manylinux_i686, manylinux_aarch64, manylinux_armv7l, manylinux_ppc64le, manylinux_mips64le, android_arm64_v8a, android_armeabi_v7a]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSBLD: \u003ccode\u003e[manylinux_mipsle]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCIBW: \u003ccode\u003e[manylinux_riscv64, manylinux_loongarch64, manylinux_s390x, musllinux_x86_64, musllinux_aarch64, musllinux_armv7l, musllinux_i686, musllinux_ppc64le, musllinux_s390x, musllinux_riscv64, musllinux_loongarch64, pyodide_wasm32]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\nThe following builds are affected by known, major issues (e.g. endianness bugs, crashes, freezes) and are \u003cstrong\u003eNOT\u003c/strong\u003e considered ready for production use:\n\u003ccode\u003e[manylinux_s390x, musllinux_s390x, pyodide_wasm32]\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eCommit logs\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eCommits between \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/tree/5.12.1\"\u003e\u003ccode\u003e5.12.1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/tree/5.13.0\"\u003e\u003ccode\u003e5.13.0\u003c/code\u003e\u003c/a\u003e (latest commit first):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/a4659102e4c258ee18c661232c0f9763f6c85ad0\"\u003e\u003ccode\u003ea4659102\u003c/code\u003e\u003c/a\u003e [autorelease main] update 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/9094de358328ae44236c5cb401a8155311e450a0\"\u003e\u003ccode\u003e9094de35\u003c/code\u003e\u003c/a\u003e continue on changelog/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b89e367a5dec13b99ec20f0beed137146a75bbcf\"\u003e\u003ccode\u003eb89e367a\u003c/code\u003e\u003c/a\u003e git_net_additions.py: minor tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/57157e789f2573f6d4b61e58e8c7a778674afdd1\"\u003e\u003ccode\u003e57157e78\u003c/code\u003e\u003c/a\u003e readme: don't overdo admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/033d5ce066aba79233d4f406678bbac057ad6011\"\u003e\u003ccode\u003e033d5ce0\u003c/code\u003e\u003c/a\u003e changelog: less waffle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/5afbd6193eff87df05153148116a82d9f7cd7fa3\"\u003e\u003ccode\u003e5afbd619\u003c/code\u003e\u003c/a\u003e install_buildtools: use compat function for dependency group\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/pypdfium2-team/pypdfium2/commit/a4659102e4c258ee18c661232c0f9763f6c85ad0\"\u003e\u003ccode\u003ea465910\u003c/code\u003e\u003c/a\u003e [autorelease main] update 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/9094de358328ae44236c5cb401a8155311e450a0\"\u003e\u003ccode\u003e9094de3\u003c/code\u003e\u003c/a\u003e continue on changelog/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b89e367a5dec13b99ec20f0beed137146a75bbcf\"\u003e\u003ccode\u003eb89e367\u003c/code\u003e\u003c/a\u003e git_net_additions.py: minor tweaks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/57157e789f2573f6d4b61e58e8c7a778674afdd1\"\u003e\u003ccode\u003e57157e7\u003c/code\u003e\u003c/a\u003e readme: don't overdo admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/033d5ce066aba79233d4f406678bbac057ad6011\"\u003e\u003ccode\u003e033d5ce\u003c/code\u003e\u003c/a\u003e changelog: less waffle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/5afbd6193eff87df05153148116a82d9f7cd7fa3\"\u003e\u003ccode\u003e5afbd61\u003c/code\u003e\u003c/a\u003e install_buildtools: use compat function for dependency group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/3282e36375fd6e139f885ff634747ab0fe643e66\"\u003e\u003ccode\u003e3282e36\u003c/code\u003e\u003c/a\u003e Add zizmor to check step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/07b84aaaa9c4c44429e0316c15c179b64c004d0a\"\u003e\u003ccode\u003e07b84aa\u003c/code\u003e\u003c/a\u003e Progress changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/6ec38d2aa64d59f02892ddf07f601bbdb5bbf53e\"\u003e\u003ccode\u003e6ec38d2\u003c/code\u003e\u003c/a\u003e git_net_additions: further improve fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/commit/b5cdd7c7fcd2c01cd7744b6824f977bbbcb831c6\"\u003e\u003ccode\u003eb5cdd7c\u003c/code\u003e\u003c/a\u003e git_net_additions: fancier fallback for binary files\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypdfium2-team/pypdfium2/compare/5.11.0...5.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.5.4 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.5.5 Bugfix Release\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.5.5\"\u003eDuckDB's changelog\u003c/a\u003e for all changes in DuckDB.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed in DuckDB-Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix numpy deprecations by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/505\"\u003educkdb/duckdb-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix alias of \u003ccode\u003eDuckDBPyRelation.query\u003c/code\u003e (closes \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/468\"\u003e#468\u003c/a\u003e) by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/524\"\u003educkdb/duckdb-python#524\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/duckdb/duckdb-python/commit/b236c8194ed14c7a7c685e0534dde501cc855b3a\"\u003e\u003ccode\u003eb236c81\u003c/code\u003e\u003c/a\u003e Pin submodule to release hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e6a21c5b5d65d741fafd5a7389c93b8b86a7f249\"\u003e\u003ccode\u003ee6a21c5\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/f637bf42683030cbb108268581b866f13cb75031\"\u003e\u003ccode\u003ef637bf4\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/4c5c73c63381bd0587fd42b41093c8f0abe9f17c\"\u003e\u003ccode\u003e4c5c73c\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6fae28061912de88c3c0f6e6ad6b2f3fc5ee5235\"\u003e\u003ccode\u003e6fae280\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/d8d5f0a36003c9090ea9480cdefa8f4b4122fece\"\u003e\u003ccode\u003ed8d5f0a\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/5d85f06025e83e3d2c69813acf4b2dc02bebc415\"\u003e\u003ccode\u003e5d85f06\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/c3cbf8d9ca87cea3dfbb89bfa2102ff4ec530f00\"\u003e\u003ccode\u003ec3cbf8d\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/93418b65c6ca821d71d9a091fb5218ad55d8a4eb\"\u003e\u003ccode\u003e93418b6\u003c/code\u003e\u003c/a\u003e Bump submodule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/24f1915b590e1e663a14c0bff9e49bf28ebece9b\"\u003e\u003ccode\u003e24f1915\u003c/code\u003e\u003c/a\u003e [duckdb-labs bot] Bump DuckDB submodule (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.5.4...v1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.9.0 to 1.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eScikit-learn 1.9.1\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.9.1 release.\u003c/p\u003e\n\u003cp\u003eThis release contains a few bug fixes and is the first version supporting Python 3.15.\u003c/p\u003e\n\u003cp\u003eYou can see the changelog here: \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.9.html#version-1-9-1\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.9.html#version-1-9-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThanks to everyone who contributed to this release !\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/866c0f51e7560ef0303cbcc5f159df5382ea9e3f\"\u003e\u003ccode\u003e866c0f5\u003c/code\u003e\u003c/a\u003e generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/12f135fbffe3b3e7e294e4ef16f0b59f68e6a6b9\"\u003e\u003ccode\u003e12f135f\u003c/code\u003e\u003c/a\u003e update upper bounds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/43ff2f20bc5bfbe92b9cd3ec9d86214da8ee2c6e\"\u003e\u003ccode\u003e43ff2f2\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/b8515241202663142b65dbe92294e96a6dc5def2\"\u003e\u003ccode\u003eb851524\u003c/code\u003e\u003c/a\u003e DOC Mark dev index as orphan (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34916\"\u003e#34916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/01d56d48da18e7b365c4d2ebcd5d1fddaa24dd12\"\u003e\u003ccode\u003e01d56d4\u003c/code\u003e\u003c/a\u003e DOC Fix wikipedia principal eigenvector example references (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34915\"\u003e#34915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/b86a1e227c2c424b17f8872d4094bbbc061e32c9\"\u003e\u003ccode\u003eb86a1e2\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/d282698440cec541f2427794b8c205fb4b1420be\"\u003e\u003ccode\u003ed282698\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34897\"\u003e#34897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eb34279083fe9297d141efddceaf38c596a49766\"\u003e\u003ccode\u003eeb34279\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/7581303c447a0daa07fa74ba8104e327c11f1dc5\"\u003e\u003ccode\u003e7581303\u003c/code\u003e\u003c/a\u003e FIX: Fix \u003ccode\u003eQuantileTransformer(ignore_implicit_zeros=True)\u003c/code\u003e sub-sampling behav...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/ac47f4de75eacad880b77db09aa1f677f6038274\"\u003e\u003ccode\u003eac47f4d\u003c/code\u003e\u003c/a\u003e FIX: avoid EfficiencyWarning in OPTICS with metric='precomputed' (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/34692\"\u003e#34692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.9.0...1.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joblib` from 1.5.3 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joblib/joblib/blob/main/CHANGES.rst\"\u003ejoblib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.6.0 - 2026/08/31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix caching of functions whose source cannot be retrieved, such as functions\ndefined in a notebook cell. Their identity fell back to\n\u003ccode\u003estr(hash(func.__code__))\u003c/code\u003e, which is salted by \u003ccode\u003ePYTHONHASHSEED\u003c/code\u003e and so\ndiffered between processes. A worker reading the \u003ccode\u003efunc_code.py\u003c/code\u003e written by\nanother one concluded that the function had changed and wiped the whole\ncache directory for it, discarding results computed by its peers.\n\u003ccode\u003efunc_code.py\u003c/code\u003e is also no longer rewritten in place, so a reader can no\nlonger catch it half-written and draw the same conclusion.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1694\"\u003ejoblib/joblib#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop python 3.9 support. The oldest supported Python version\nis now Python 3.10.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1773\"\u003ejoblib/joblib#1773\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eeval_expr\u003c/code\u003e (used to evaluate the \u003ccode\u003epre_dispatch\u003c/code\u003e argument of\n\u003ccode\u003eParallel\u003c/code\u003e) to raise a \u003ccode\u003eValueError\u003c/code\u003e as documented instead of leaking a\n\u003ccode\u003eZeroDivisionError\u003c/code\u003e for expressions that divide or take a modulo by zero.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1810\"\u003ejoblib/joblib#1810\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMemorizedResult\u003c/code\u003e now forwards \u003ccode\u003emmap_mode\u003c/code\u003e to its store backend, so a\ncached array reconstructed from a location is memory-mapped as requested\ninstead of being loaded fully into memory.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1799\"\u003ejoblib/joblib#1799\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUnvendor cloudpickle to more quickly benefit from maintenance releases\nof cloudpickle\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1775\"\u003ejoblib/joblib#1775\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eMemory.cache\u003c/code\u003e for functions with a keyword-only argument that has a\ndefault declared before a keyword-only argument without a default.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1731\"\u003ejoblib/joblib#1731\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix behavior of \u003ccode\u003efilter_args\u003c/code\u003e on some precise cases.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1800\"\u003ejoblib/joblib#1800\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a concurrency error that could happen with unordered generator.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1789\"\u003ejoblib/joblib#1789\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003edump()\u003c/code\u003e now accepts any input \u003ccode\u003eos.PathLike\u003c/code\u003e object to be consistent with\n\u003ccode\u003eload\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1812\"\u003ejoblib/joblib#1812\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe documentation now uses pydata sphinx theme. Furthermore, optional dependencies\n\u003ccode\u003etest\u003c/code\u003e and \u003ccode\u003edocs\u003c/code\u003e have been added to \u003ccode\u003epyproject.toml\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/joblib/joblib/pull/1774\"\u003ejoblib/joblib#1774\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVendor \u003ccode\u003eloky 3.6.0\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/cd9a6b05fc4f2b1c8202eb62c4e863484f8cc099\"\u003e\u003ccode\u003ecd9a6b0\u003c/code\u003e\u003c/a\u003e Release 1.6.0 (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1844\"\u003e#1844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/d873f972949d78166af6c945667c53f04d41fed6\"\u003e\u003ccode\u003ed873f97\u003c/code\u003e\u003c/a\u003e MNT vendor loky 3.6.0 (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1843\"\u003e#1843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/4ff61afd0849f18fddf5fbd137c1f02bfaed5223\"\u003e\u003ccode\u003e4ff61af\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/joblib/joblib/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joblib/joblib/commit/804f4725e1a27b1425c8aabcf7312ceb11c3a07d\"\u003e\u003ccode\u003e804f472\u003c/code\u003e\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/Vatsa1374/Vibe-trading-/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vatsa1374%2FVibe-trading-/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"}},{"old_version":"7.1.5","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-16T01:34:46.000Z","version_change":"7.1.5 → 7.1.8","issue":{"uuid":"5469180471","node_id":"PR_kwDOS9Lfxc8AAAABDsoOsQ","number":79,"state":"open","title":"chore(deps): bump the uv-dependencies group across 1 directory with 51 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-16T01:34:46.000Z","updated_at":"2026-09-16T01:34:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":51,"packages":[{"name":"alembic","old_version":"1.18.5","new_version":"1.20.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"apprise","old_version":"1.12.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.2","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"49.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"dateparser","old_version":"1.4.1","new_version":"1.4.3","repository_url":"https://github.com/scrapinghub/dateparser"},{"name":"pytz","old_version":"2026.2","new_version":"2026.3.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.22.1","new_version":"4.25.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"anyio","old_version":"4.14.1","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"cachetools","old_version":"7.1.5","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.139.2","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.6.0","new_version":"2026.7.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"griffe","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.9","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.2","new_version":"26.3","repository_url":"https://github.com/pypa/packaging"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-slugify","old_version":"8.0.4","new_version":"9.0.0","repository_url":"https://github.com/un33k/python-slugify"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.51.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"whenever","old_version":"0.10.3","new_version":"0.10.5","repository_url":"https://github.com/ariebovenberg/whenever"},{"name":"semver","old_version":"3.0.4","new_version":"3.1.0","repository_url":"https://github.com/python-semver/python-semver"},{"name":"pydocket","old_version":"0.23.1","new_version":"0.25.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"google-cloud-secret-manager","old_version":"2.26.0","new_version":"2.30.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.47.0","new_version":"2.58.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"uv","old_version":"0.11.31","new_version":"0.12.13","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-snowflake","old_version":"0.28.8","new_version":"0.28.9","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-email","old_version":"0.4.2","new_version":"0.4.3","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-slack","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.2.2","new_version":"5.2.3","repository_url":"https://github.com/getmoto/moto"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.411","new_version":"1.1.414","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"redis","old_version":"8.0.1","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"83.0.0","new_version":"84.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"vale","old_version":"3.13.0.0","new_version":"3.21.0.0","repository_url":"https://github.com/daniperez/vale-python-package"},{"name":"virtualenv","old_version":"21.7.0","new_version":"21.7.9","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.22","new_version":"0.16.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"types-pyyaml","old_version":"6.0.12.20260518","new_version":"6.0.12.20260906","repository_url":"https://github.com/python/typeshed"},{"name":"types-dateparser","old_version":"1.4.1.20260617","new_version":"1.4.3.20260907","repository_url":"https://github.com/python/typeshed"},{"name":"pyinstrument","old_version":"5.1.2","new_version":"5.1.3","repository_url":"https://github.com/joerick/pyinstrument"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.5` | `1.20.0` |\n| [apprise](https://github.com/caronc/apprise) | `1.12.0` | `1.13.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `49.0.0` | `50.0.1` |\n| [dateparser](https://github.com/scrapinghub/dateparser) | `1.4.1` | `1.4.3` |\n| [pytz](https://github.com/stub42/pytz) | `2026.2` | `2026.3.post1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.22.1` | `4.25.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.1` | `4.15.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.5` | `7.1.8` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.2` | `0.141.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.6.0` | `2026.7.0` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.1.0` | `2.3.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.44.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.9` | `3.12.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.2` | `26.3` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [python-slugify](https://github.com/un33k/python-slugify) | `8.0.4` | `9.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.51.0` | `0.52.4` |\n| [whenever](https://github.com/ariebovenberg/whenever) | `0.10.3` | `0.10.5` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.4` | `3.1.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.23.1` | `0.25.2` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.26.0` | `2.30.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.47.0` | `2.58.0` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.31` | `0.12.13` |\n| [prefect-snowflake](https://github.com/PrefectHQ/prefect) | `0.28.8` | `0.28.9` |\n| [prefect-email](https://github.com/PrefectHQ/prefect) | `0.4.2` | `0.4.3` |\n| [prefect-slack](https://github.com/PrefectHQ/prefect) | `0.3.1` | `0.4.0` |\n| [moto](https://github.com/getmoto/moto) | `5.2.2` | `5.2.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.411` | `1.1.414` |\n| [redis](https://github.com/redis/redis-py) | `8.0.1` | `8.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `83.0.0` | `84.0.0` |\n| [vale](https://github.com/daniperez/vale-python-package) | `3.13.0.0` | `3.21.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.7.0` | `21.7.9` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.22` | `0.16.7` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260518` | `6.0.12.20260906` |\n| [types-dateparser](https://github.com/python/typeshed) | `1.4.1.20260617` | `1.4.3.20260907` |\n| [pyinstrument](https://github.com/joerick/pyinstrument) | `5.1.2` | `5.1.3` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n\n\nUpdates `alembic` from 1.18.5 to 1.20.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.20.0\u003c/h1\u003e\n\u003cp\u003eReleased: September 11, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [batch]\u003c/strong\u003e Added a warning for the case where an unnamed CHECK constraint on a\nreflected table is omitted from a batch \u0026quot;recreate\u0026quot; operation.  An unnamed\nCHECK constraint can't be reliably carried over in a batch recreate\nas it may refer to columns that are being dropped or changed.  This\nomission was previously a silent operation.   The presence of any\n\u003ccode\u003e~sqlalchemy.schema.CheckConstraint\u003c/code\u003e in\n\u003ccode\u003eOperations.batch_alter_table.table_args\u003c/code\u003e is taken to indicate\nthat the case has been accommodated, and no warning is emitted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1846\"\u003e#1846\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Autogenerate now renders a warning comment above any rendered\n\u003ccode\u003eOperations.drop_constraint()\u003c/code\u003e directive for which the constraint name\nis \u003ccode\u003eNone\u003c/code\u003e, as is the case when a constraint that has no name in the model\nis dropped, most typically within the \u003ccode\u003edowngrade()\u003c/code\u003e function of a\nmigration that adds an unnamed constraint.  A warning is also emitted on\nthe console when the migration script is generated.   The directive\nrequires a non-None name in order to be able to emit a \u0026quot;DROP CONSTRAINT\u0026quot;\ncommand.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/916\"\u003e#916\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where adding a column with a type that generates\nits own CHECK constraint, such as \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or\n\u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e with\n\u003ccode\u003e~sqlalchemy.types.Boolean.create_constraint\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e,\nwould emit the constraint twice when the table was recreated, once under\nthe name generated by the naming convention in use and once under the\nname given to the type.  The constraint is now emitted once, using the\nsame name that would be used outside of batch mode.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1768\"\u003e#1768\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [batch]\u003c/strong\u003e Fixed bug in batch mode where a CHECK constraint generated by a type such\nas \u003ccode\u003e~sqlalchemy.types.Boolean\u003c/code\u003e or \u003ccode\u003e~sqlalchemy.types.Enum\u003c/code\u003e\nwould lose the name established for it by the naming convention in use\nwhen the table was recreated, as the constraint was regenerated against\nthe temporary table used for the recreate operation.  The naming\nconvention is now resolved against the name of the table being replaced.\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 `apprise` from 1.12.0 to 1.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eJust a small update to fix a small stability issue with Attachments under some circumstances and the few PR's made by others in one more small bundle.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e (this time i mean it :wink: ) . Future releases will be under Apprise v2.x. Again, I strongly want to urge Developers: \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it WILL introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Signalgrid notification service plugin by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Lauther notification support by \u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes Gento Linux issue with memory based attachment handling in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1709\"\u003ecaronc/apprise#1709\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e:point_up: This is the core reason for this minor update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAllow periods in Pingram API keys (JWT format) by \u003ca href=\"https://github.com/lipusal\"\u003e\u003ccode\u003e@​lipusal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1714\"\u003ecaronc/apprise#1714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes intermittent test failures for matrix in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1717\"\u003ecaronc/apprise#1717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cp\u003en/a\u003c/p\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Py 3.13+, please by \u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(matrix): typofix in label by \u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo recomended -\u0026gt; recommended by \u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.13.1 from PyPI\r\npip install apprise==1.13.1\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ehttps://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis update clears out our backlog of resolved bugs and introduces a few new services. While it’s a standard maintenance release, we want to give a massive shoutout to our community. The level of support we've received for this update is truly incredible; there were more commits/PRs from you than there were from me and that has never happend before :slightly_smiling_face: . Your contributions are deeply appreciated! Seriously!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e. Future releases will be under Apprise v2.x. This means: Developers, \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it will introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Pinglet Support by \u003ca href=\"https://github.com/TheGlenn88\"\u003e\u003ccode\u003e@​TheGlenn88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1680\"\u003ecaronc/apprise#1680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Trigv notification support by \u003ca href=\"https://github.com/hchouhan\"\u003e\u003ccode\u003e@​hchouhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1671\"\u003ecaronc/apprise#1671\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/caronc/apprise/commit/cf4da87eab713370a62d7a4f9ca64dcd3bffdf61\"\u003e\u003ccode\u003ecf4da87\u003c/code\u003e\u003c/a\u003e bumped version to v1.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0386b1cc093b3c55cfcebf4bdce17fc4309e0bd7\"\u003e\u003ccode\u003e0386b1c\u003c/code\u003e\u003c/a\u003e Add Lauther notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1715\"\u003e#1715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/3299eb37aa60ed729f935f039b79a9f9786e7424\"\u003e\u003ccode\u003e3299eb3\u003c/code\u003e\u003c/a\u003e Add Signalgrid notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e05331ba9b5d2ace834b23e49728065ffebcb377\"\u003e\u003ccode\u003ee05331b\u003c/code\u003e\u003c/a\u003e relaxed some noisy logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8f73f6a0cdb83e6187624715a12e8f36dd8a1bbc\"\u003e\u003ccode\u003e8f73f6a\u003c/code\u003e\u003c/a\u003e Fixes intermittent test failures for matrix on py39 (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1717\"\u003e#1717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0af1bb2097dad2557f55a523d09269341fa3fdfb\"\u003e\u003ccode\u003e0af1bb2\u003c/code\u003e\u003c/a\u003e docs: fix typo recomended -\u0026gt; recommended (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1716\"\u003e#1716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8df288a1824711bc6b1bdb59c1b5b356e4da3fd5\"\u003e\u003ccode\u003e8df288a\u003c/code\u003e\u003c/a\u003e Allow periods in Pingram API keys (JWT format) (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1714\"\u003e#1714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/aa7221b7cabe757e000a1e6e019fc8f91ec517a0\"\u003e\u003ccode\u003eaa7221b\u003c/code\u003e\u003c/a\u003e Allow Py 3.13+ (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1711\"\u003e#1711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e93c9360c5ae2ed729a282bc454f6ceeb4abd9e1\"\u003e\u003ccode\u003ee93c936\u003c/code\u003e\u003c/a\u003e Fixes Gento Linux issue with memory based attachment handling (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1709\"\u003e#1709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4e6f4b117fa356f7ba0a076080c4927fcf78bc47\"\u003e\u003ccode\u003e4e6f4b1\u003c/code\u003e\u003c/a\u003e typofix in matrix:// label (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1707\"\u003e#1707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.12.0...v1.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.2 to 8.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.5.0/\"\u003ehttps://pypi.org/project/click/8.5.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-5-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-5-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/33\"\u003ehttps://github.com/pallets/click/milestone/33\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2672\"\u003e#2672\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3637\"\u003e#3637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2986\"\u003e#2986\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3505\"\u003e#3505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2983\"\u003e#2983\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3473\"\u003e#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when \u003ca href=\"https://redirect.github.com/pallets/click/issues/2969\"\u003e#2969\u003c/a\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3572\"\u003e#3572\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3653\"\u003e#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2877\"\u003e#2877\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3642\"\u003e#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). \u003ca href=\"https://redirect.github.com/pallets/click/issues/3581\"\u003e#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3677\"\u003e#3677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2819\"\u003e#2819\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3678\"\u003e#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3681\"\u003e#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.5.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-08-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd built-in shell completion support for PowerShell (Windows PowerShell\n5.1+ and pwsh 7+) alongside the existing \u003ccode\u003ebash\u003c/code\u003e, \u003ccode\u003ezsh\u003c/code\u003e, and \u003ccode\u003efish\u003c/code\u003e\ncompleters. Use \u003ccode\u003e_FOO_BAR_COMPLETE=powershell_source foo-bar\u003c/code\u003e to generate\nthe completion script. {issue}\u003ccode\u003e2672\u003c/code\u003e {pr}\u003ccode\u003e3637\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupported versions of Windows enable ANSI terminal styles by default.\nColorama is no longer a dependency and is not used. {issue}\u003ccode\u003e2986\u003c/code\u003e {pr}\u003ccode\u003e3505\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003eArgument\u003c/code\u003e accepts a \u003ccode\u003ehelp\u003c/code\u003e parameter, and help output includes\na \u003ccode\u003ePositional arguments\u003c/code\u003e section when argument help is available. {issue}\u003ccode\u003e2983\u003c/code\u003e {pr}\u003ccode\u003e3473\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfirm()\u003c/code\u003e and \u003ccode\u003eprompt()\u003c/code\u003e strip ANSI color and style codes from the\nprompt when the output stream does not support them, matching \u003ccode\u003eecho()\u003c/code\u003e.\nThis stripping was lost in \u003ccode\u003e8.4.0\u003c/code\u003e when {pr}\u003ccode\u003e2969\u003c/code\u003e began writing the\nprompt with \u003ccode\u003einput()\u003c/code\u003e directly. {issue}\u003ccode\u003e3572\u003c/code\u003e {pr}\u003ccode\u003e3653\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix test failures when using pytest \u0026gt;= 9.1. {pr}\u003ccode\u003e3656\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{class}\u003ccode\u003ePath\u003c/code\u003e with \u003ccode\u003eallow_dash=True\u003c/code\u003e no longer triggers a \u003ccode\u003eBytesWarning\u003c/code\u003e,\nan error under \u003ccode\u003epython -bb\u003c/code\u003e, when checking a value against the \u003ccode\u003e-\u003c/code\u003e\nconvention. {issue}\u003ccode\u003e2877\u003c/code\u003e {pr}\u003ccode\u003e3642\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd {func}\u003ccode\u003ecustom_version_option\u003c/code\u003e, a \u003ccode\u003e--version\u003c/code\u003e option whose output is\nproduced by a callback, covering cases {func}\u003ccode\u003eversion_option\u003c/code\u003e intentionally\ndoes not. The feature set of {func}\u003ccode\u003eversion_option\u003c/code\u003e is now frozen; see\n[discussion \u003ca href=\"https://redirect.github.com/pallets/click/issues/3527\"\u003e#3527\u003c/a\u003e](\u003ca href=\"https://github.com/pallets/click/discussions/3527\"\u003ehttps://github.com/pallets/click/discussions/3527\u003c/a\u003e). {pr}\u003ccode\u003e3581\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estyle()\u003c/code\u003e and \u003ccode\u003esecho()\u003c/code\u003e no longer silently drop the 256-color index \u003ccode\u003e0\u003c/code\u003e\n(black) passed as \u003ccode\u003efg\u003c/code\u003e or \u003ccode\u003ebg\u003c/code\u003e, and now validate color arguments. Invalid\ncolors raise a \u003ccode\u003eValueError\u003c/code\u003e instead of a \u003ccode\u003eTypeError\u003c/code\u003e. {pr}\u003ccode\u003e3677\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe automatic help option stores its value under the reserved name\n\u003ccode\u003e_click_default_help\u003c/code\u003e instead of \u003ccode\u003ehelp\u003c/code\u003e, so a parameter named \u003ccode\u003ehelp\u003c/code\u003e no\nlonger breaks parsing. The new name is visible in\n{meth}\u003ccode\u003eCommand.to_info_dict\u003c/code\u003e output. Parameters that overwrite each other's\nvalue trigger a warning: an argument sharing its name with another\nparameter, or any parameter claiming the reserved name. Options may still\nshare a name to compete for the same value (feature switches).\n{issue}\u003ccode\u003e2819\u003c/code\u003e {pr}\u003ccode\u003e3678\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunstyle\u003c/code\u003e and the ANSI handling behind help-text wrapping now strip the full\nCSI escape-sequence grammar. {pr}\u003ccode\u003e3681\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStreamline \u003ccode\u003eOption\u003c/code\u003e flag handling: the flag-kind, type, lazy-default and\nvalidation steps in \u003ccode\u003eOption.__init__\u003c/code\u003e move into focused helpers, and\n\u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003edefault\u003c/code\u003e keep their unset sentinel at construction\n(resolved lazily on read) so \u003ccode\u003eis UNSET\u003c/code\u003e reliably tells a user-supplied value\nfrom an auto-derived one. Runtime behavior is unchanged, but\n{meth}\u003ccode\u003eParameter.to_info_dict\u003c/code\u003e now resolves \u003ccode\u003edefault=True\u003c/code\u003e on a feature\nswitch to its \u003ccode\u003eflag_value\u003c/code\u003e, matching what the function receives at call\ntime. {pr}\u003ccode\u003e3641\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eget_binary_stream\u003c/code\u003e and {func}\u003ccode\u003eget_text_stream\u003c/code\u003e are deprecated and\nwill be removed in Click 9.0. {issue}\u003ccode\u003e3481\u003c/code\u003e {pr}\u003ccode\u003e3695\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe following \u003ccode\u003eclick.utils\u003c/code\u003e names were never intentionally public and are\nnow private (\u003ccode\u003e_\u003c/code\u003e-prefixed). The old names remain available with a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e until Click 9.0: \u003ccode\u003eLazyFile\u003c/code\u003e, \u003ccode\u003eKeepOpenFile\u003c/code\u003e,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d\"\u003e\u003ccode\u003e8b19813\u003c/code\u003e\u003c/a\u003e Release version 8.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369\"\u003e\u003ccode\u003e2c8cd3a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3778\"\u003e#3778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac\"\u003e\u003ccode\u003e131c86a\u003c/code\u003e\u003c/a\u003e Add FAQ entry about \u003ccode\u003eUnicodeEncodeError\u003c/code\u003e on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb\"\u003e\u003ccode\u003ee1fd594\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3781\"\u003e#3781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781\"\u003e\u003ccode\u003ea1d8785\u003c/code\u003e\u003c/a\u003e Add support of \u003ccode\u003epathlib.Path\u003c/code\u003e to \u003ccode\u003eedit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4\"\u003e\u003ccode\u003e2103e15\u003c/code\u003e\u003c/a\u003e Forward all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e and improve flag detection (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3777\"\u003e#3777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4\"\u003e\u003ccode\u003ea6256bf\u003c/code\u003e\u003c/a\u003e Forwards all user's parameters set in \u003ccode\u003ePAGER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e\"\u003e\u003ccode\u003e61b69e9\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3776\"\u003e#3776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8\"\u003e\u003ccode\u003e9835b0f\u003c/code\u003e\u003c/a\u003e Resolve the pager command once, in \u003ccode\u003e_pager_contextmanager\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7\"\u003e\u003ccode\u003ef36d58b\u003c/code\u003e\u003c/a\u003e Refactor pager stream handling (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3767\"\u003e#3767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.2...8.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 49.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003c/p\u003e\n\u003cp\u003e50.0.0 - 2026-07-31\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e:\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der\u003c/code\u003e\nand its PEM and S/MIME variants no longer expose distinguishable errors or\ntiming when unwrapping a \u003ccode\u003eRecipientInfo\u003c/code\u003e's \u003ccode\u003eencryptedKey\u003c/code\u003e, which could\nact as a Bleichenbacher oracle for callers that decrypt untrusted messages.\nA random key is now substituted on failure, as described in :rfc:\u003ccode\u003e3218\u003c/code\u003e.\nCredit to \u003cstrong\u003e\u003ca href=\"https://github.com/X1AOxiang\"\u003e\u003ccode\u003e@​X1AOxiang\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-69247\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated Diffie-Hellman key exchange over finite fields (FFDH).\nEverything FFDH is deprecated, including the types in\n\u003ccode\u003ecryptography.hazmat.primitives.asymmetric.dh\u003c/code\u003e and loading FFDH keys or\nparameters with the key loading APIs. Users should migrate to a more\nmodern key exchange algorithm.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003exof()\u003c/code\u003e class methods to\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.SHAKE128\u003c/code\u003e and\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.SHAKE256\u003c/code\u003e for constructing\nalgorithm instances configured for use with\n:class:\u003ccode\u003e~cryptography.hazmat.primitives.hashes.XOFHash\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe :mod:\u003ccode\u003eX.509 verification \u0026lt;cryptography.x509.verification\u0026gt;\u003c/code\u003e APIs are now\nconsidered stable and are subject to our API stability policy.\u003c/li\u003e\n\u003cli\u003eAdded the :doc:\u003ccode\u003e/cobblestone\u003c/code\u003e recipe, an implementation of the\nCobblestone-128 and Cobblestone-256 instantiations of the \u003ccode\u003eC2SP chunked-encryption specification \u0026lt;https://c2sp.org/chunked-encryption\u0026gt;\u003c/code\u003e_ for streaming authenticated\nencryption of large messages.\u003c/li\u003e\n\u003cli\u003eParsing a Signed Certificate Timestamp list now rejects encodings that\ncarry trailing bytes after the list or after an individual SCT, instead of\nsilently ignoring them.\u003c/li\u003e\n\u003cli\u003eAdded support for using :class:\u003ccode\u003e~cryptography.x509.Name\u003c/code\u003e as a field type in\nthe :doc:\u003ccode\u003e/hazmat/asn1/index\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eLoading a public key or an EC private key now rejects DER where the\n\u003ccode\u003esubjectPublicKey\u003c/code\u003e (or EC \u003ccode\u003epublicKey\u003c/code\u003e) \u003ccode\u003eBIT STRING\u003c/code\u003e declares a non-zero\nnumber of unused bits, instead of silently ignoring it.\u003c/li\u003e\n\u003cli\u003eParsing a CRL entry's \u003ccode\u003eInvalidityDate\u003c/code\u003e extension now rejects a\n\u003ccode\u003eGeneralizedTime\u003c/code\u003e that carries fractional seconds or another non-DER form,\nmatching the strict encoding already required for every other X.509 time\nfield.\u003c/li\u003e\n\u003cli\u003e:func:\u003ccode\u003e~cryptography.x509.ocsp.load_der_ocsp_request\u003c/code\u003e and\n:func:\u003ccode\u003e~cryptography.x509.ocsp.load_der_ocsp_response\u003c/code\u003e now reject a request\nor response whose \u003ccode\u003eversion\u003c/code\u003e field is not \u003ccode\u003ev1\u003c/code\u003e, the only version defined\nby RFC 6960, matching the version validation already performed when loading\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/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/dcb7050b807b00392fa9fe2eac7cb362fcf355cc\"\u003e\u003ccode\u003edcb7050\u003c/code\u003e\u003c/a\u003e Prepare for 50.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15372\"\u003e#15372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/53fccd93413a8d7f07d6d8999681f27b75cffa3f\"\u003e\u003ccode\u003e53fccd9\u003c/code\u003e\u003c/a\u003e Don't leak how PKCS#7 encryptedKey decryption failed (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15369\"\u003e#15369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d472f978470fbefa521b86d98b2ecccbbb4d1dd8\"\u003e\u003ccode\u003ed472f97\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e to all src/ Python files (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15371\"\u003e#15371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/908773d53829fb1466c6db364b31321c3cd8eb9a\"\u003e\u003ccode\u003e908773d\u003c/code\u003e\u003c/a\u003e Bump downstream dependencies in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15368\"\u003e#15368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2cc07cc948948211899bcb0cddd1fddf86e95812\"\u003e\u003ccode\u003e2cc07cc\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15367\"\u003e#15367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c94ede9f040fa44942f7139772603419000acf66\"\u003e\u003ccode\u003ec94ede9\u003c/code\u003e\u003c/a\u003e chore(deps): bump ruff from 0.16.0 to 0.16.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15366\"\u003e#15366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67a8308dc9ea4cce6056e0f1438f903c208c3f35\"\u003e\u003ccode\u003e67a8308\u003c/code\u003e\u003c/a\u003e chore(deps): bump virtualenv from 21.7.0 to 21.7.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15365\"\u003e#15365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/95018ffcdbbc510fd92fc872e3a3e80aa6e58596\"\u003e\u003ccode\u003e95018ff\u003c/code\u003e\u003c/a\u003e Release the GIL in one-shot AEAD encrypt/decrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15361\"\u003e#15361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6954733eaf55a0074abf88f06f7242dfca3a5d02\"\u003e\u003ccode\u003e6954733\u003c/code\u003e\u003c/a\u003e Release the GIL during DH and DSA parameter generation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15364\"\u003e#15364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/49.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dateparser` from 1.4.1 to 1.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scrapinghub/dateparser/releases\"\u003edateparser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.3\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake parsing thread-safe: parsing from several threads no longer\nraises an intermittent \u003ccode\u003eKeyError\u003c/code\u003e from the shared language caches,\nand a \u003ccode\u003eDATE_ORDER\u003c/code\u003e or \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e value meant for one parse no\nlonger leaks into the settings that other parses read, where it could\nmake them return a wrong date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not share the language detector and the detected locale between\n\u003ccode\u003esearch_dates()\u003c/code\u003e calls, so concurrent searches over text in\ndifferent languages no longer return \u003ccode\u003eNone\u003c/code\u003e or a date read in the\nwrong locale (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve the \u003ccode\u003eBST\u003c/code\u003e and \u003ccode\u003eHDT\u003c/code\u003e timezone abbreviations to the offsets\nthe tz database gives them, UTC+1 (British Summer Time) and UTC-9\n(Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no\nzone goes by those names today; abbreviations that the tz database\nmaps to more than one offset, such as \u003ccode\u003eCST\u003c/code\u003e and \u003ccode\u003eIST\u003c/code\u003e, keep their\ncurrent offset. Text carrying these abbreviations keeps its wall clock\nbut moves by 10 hours for \u003ccode\u003eBST\u003c/code\u003e and 30 minutes for \u003ccode\u003eHDT\u003c/code\u003e, which can\nput the parsed instant on a different day (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject a \u003ccode\u003e%j\u003c/code\u003e (day of year) value that the parsed year does not\nhave, instead of rolling it over into the next year, so \u0026quot;1999366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%Y%j\u0026quot;]\u003c/code\u003e returns \u003ccode\u003eNone\u003c/code\u003e rather than 2000-01-01. A\nformat with no year directive is checked against the year \u003ccode\u003estrptime\u003c/code\u003e\ndefaults to, 1900, which is not a leap year, so \u0026quot;366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%j\u0026quot;]\u003c/code\u003e now returns \u003ccode\u003eNone\u003c/code\u003e where it used to return\nJanuary 1 (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCleanups and internal improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CodSpeed benchmarks and a workflow that runs them, so a\nperformance regression such as the quadratic backtracking fixed in\n1.4.1 is reported on the pull request that introduces it (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.2\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an \u003ccode\u003eIGNORE_SURROUNDING_TEXT\u003c/code\u003e setting that, when enabled, retries parsing after ignoring leading and trailing words the language does not recognize, so a date wrapped in extra text such as \u0026quot;Published on\n16/04/2019\u0026quot; is parsed (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003estrategy\u003c/code\u003e argument to \u003ccode\u003esearch_dates()\u003c/code\u003e to choose the search strategy: the default \u003ccode\u003e\u0026quot;split\u0026quot;\u003c/code\u003e keeps the current behavior, while the new \u003ccode\u003e\u0026quot;ngram\u0026quot;\u003c/code\u003e strategy parses the longest sequences of tokens as\ndates for more predictable results on noisy text (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not read a two-digit number as a year once a later component has been found in year-first date orders, so the day in Japanese dates such as \u0026quot;4月20日\u0026quot; is no longer consumed as the year (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse ISO 8601 dates (those starting with a four-digit year) in month-day order even when an explicit day-first language such as \u003ccode\u003eit\u003c/code\u003e or \u003ccode\u003efr\u003c/code\u003e is given, without needing to set \u003ccode\u003ePREFER_LOCALE_DATE_ORDER\u003c/code\u003e to\n\u003ccode\u003eFalse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1352\"\u003e#1352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHonor \u003ccode\u003ePREFER_DATES_FROM\u003c/code\u003e and \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e when parsing with custom \u003ccode\u003edate_formats\u003c/code\u003e that use a two-digit year (\u003ccode\u003e%y\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1342\"\u003e#1342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHonor the \u003ccode\u003e%j\u003c/code\u003e (day of year) directive in \u003ccode\u003edate_formats\u003c/code\u003e instead of overwriting the parsed month and day with the current date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1345\"\u003e#1345\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/scrapinghub/dateparser/blob/master/HISTORY.rst\"\u003edateparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.3 (2026-09-03)\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake parsing thread-safe: parsing from several threads no longer\nraises an intermittent \u003ccode\u003eKeyError\u003c/code\u003e from the shared language caches,\nand a \u003ccode\u003eDATE_ORDER\u003c/code\u003e or \u003ccode\u003eRELATIVE_BASE\u003c/code\u003e value meant for one parse no\nlonger leaks into the settings that other parses read, where it could\nmake them return a wrong date (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not share the language detector and the detected locale between\n\u003ccode\u003esearch_dates()\u003c/code\u003e calls, so concurrent searches over text in\ndifferent languages no longer return \u003ccode\u003eNone\u003c/code\u003e or a date read in the\nwrong locale (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve the \u003ccode\u003eBST\u003c/code\u003e and \u003ccode\u003eHDT\u003c/code\u003e timezone abbreviations to the offsets\nthe tz database gives them, UTC+1 (British Summer Time) and UTC-9\n(Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no\nzone goes by those names today; abbreviations that the tz database\nmaps to more than one offset, such as \u003ccode\u003eCST\u003c/code\u003e and \u003ccode\u003eIST\u003c/code\u003e, keep their\ncurrent offset. Text carrying these abbreviations keeps its wall clock\nbut moves by 10 hours for \u003ccode\u003eBST\u003c/code\u003e and 30 minutes for \u003ccode\u003eHDT\u003c/code\u003e, which can\nput the parsed instant on a different day (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject a \u003ccode\u003e%j\u003c/code\u003e (day of year) value that the parsed year does not\nhave, instead of rolling it over into the next year, so \u0026quot;1999366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%Y%j\u0026quot;]\u003c/code\u003e returns \u003ccode\u003eNone\u003c/code\u003e rather than 2000-01-01. A\nformat with no year directive is checked against the year \u003ccode\u003estrptime\u003c/code\u003e\ndefaults to, 1900, which is not a leap year, so \u0026quot;366\u0026quot; with\n\u003ccode\u003edate_formats=[\u0026quot;%j\u0026quot;]\u003c/code\u003e now returns \u003ccode\u003eNone\u003c/code\u003e where it used to return\nJanuary 1 (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCleanups and internal improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CodSpeed benchmarks and a workflow that runs them, so a\nperformance regression such as the quadratic backtracking fixed in\n1.4.1 is reported on the pull request that introduces it (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.2 (2026-08-04)\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an \u003ccode\u003eIGNORE_SURROUNDING_TEXT\u003c/code\u003e setting that, when enabled, retries\nparsing after ignoring the leading and trailing words the language does\nnot recognize, so a date wrapped in extra text such as \u0026quot;Published on\n16/04/2019\u0026quot; is parsed (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003estrategy\u003c/code\u003e argument to \u003ccode\u003esearch_dates()\u003c/code\u003e to choose the search\nstrategy: the default \u003ccode\u003e\u0026quot;split\u0026quot;\u003c/code\u003e keeps the current behavior, while the\nnew \u003ccode\u003e\u0026quot;ngram\u0026quot;\u003c/code\u003e strategy parses the longest sequences of tokens as dates\nfor more predictable results on noisy text (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1351\"\u003e#1351\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/scrapinghub/dateparser/commit/9ce60b1958f1b285886bcfbb743f6419feacfc92\"\u003e\u003ccode\u003e9ce60b1\u003c/code\u003e\u003c/a\u003e 1.4.3 release (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/27182cd1b89111fb8978b3a10acc6f474f0cd320\"\u003e\u003ccode\u003e27182cd\u003c/code\u003e\u003c/a\u003e Avoid shared language_detector and locale cache in search_dates (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/6b5f17d35a7bc4d5aa62ca4c90eea19d7e343490\"\u003e\u003ccode\u003e6b5f17d\u003c/code\u003e\u003c/a\u003e Reject a %j day of year that the parsed year does not have (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/271\"\u003e#271\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1370\"\u003e#1370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/cd9bb13e63f41eb5f44074cfdc73a41aa62293e1\"\u003e\u003ccode\u003ecd9bb13\u003c/code\u003e\u003c/a\u003e Make thread-safe (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/de7b986fa1fe3c7830bdb922435501ad871c55c3\"\u003e\u003ccode\u003ede7b986\u003c/code\u003e\u003c/a\u003e tests: add CodSpeed benchmarks (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/764091d174abc38ac2fbadbe686fdf734352aead\"\u003e\u003ccode\u003e764091d\u003c/code\u003e\u003c/a\u003e Fix timezone ambiguity using tz database (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1322\"\u003e#1322\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/b1f603e9b562156ea97aa6b2da08dd69266bbd47\"\u003e\u003ccode\u003eb1f603e\u003c/code\u003e\u003c/a\u003e 1.4.2 release (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/ff3dcb99f3cd4d4b9c727ceca7f83d8b4b4bc9d3\"\u003e\u003ccode\u003eff3dcb9\u003c/code\u003e\u003c/a\u003e Specify README header content as RST (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1360\"\u003e#1360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/d886e231f40e91f6bcb046dc4986e7e7efeaf937\"\u003e\u003ccode\u003ed886e23\u003c/code\u003e\u003c/a\u003e Parse dates wrapped in harmless extra text (Close \u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/518\"\u003e#518\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1356\"\u003e#1356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapinghub/dateparser/commit/06ca032deff4d5eec281af4030f34b46e9fe7adc\"\u003e\u003ccode\u003e06ca032\u003c/code\u003e\u003c/a\u003e Do not read the day as a two-digit year after the year position (\u003ca href=\"https://redirect.github.com/scrapinghub/dateparser/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scrapinghub/dateparser/compare/v1.4.1...v1.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.2 to 2026.3.post1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/661bca921e29dc3eedd4430bac70816c9154c05e\"\u003e\u003ccode\u003e661bca9\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.3.post1 for python2 fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/1e31a162477bfd338df4651cbb55d35a86a15cd1\"\u003e\u003ccode\u003e1e31a16\u003c/code\u003e\u003c/a\u003e Log python version running tests, force python2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b3ca7c3fc264252e7f8162229f9d0dc4410037ee\"\u003e\u003ccode\u003eb3ca7c3\u003c/code\u003e\u003c/a\u003e Unix line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b55039a6ad038432bfc8e718f1852f54599bfa30\"\u003e\u003ccode\u003eb55039a\u003c/code\u003e\u003c/a\u003e Replace non-ASCII character in comment to fix build with Python 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/5420ee2c14c95abd5258c0e43381ac9430647ab8\"\u003e\u003ccode\u003e5420ee2\u003c/code\u003e\u003c/a\u003e Replace non-ASCII character in comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/2c139e800b5353eb6bb9649ee51fc177b51c4e9e\"\u003e\u003ccode\u003e2c139e8\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/localize-overflow-at-datetime-extremes' of \u003ca href=\"https://github.c\"\u003ehttps://github.c\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/c843864ba959a0def449dfe5c4f1547308ab8eb1\"\u003e\u003ccode\u003ec843864\u003c/code\u003e\u003c/a\u003e Run zdump tests quietly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/518500c68a9ed1f6cda32101004c38b4cc1d6fa6\"\u003e\u003ccode\u003e518500c\u003c/code\u003e\u003c/a\u003e Reduce noise when collecting zdump info dumps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/081f935fbc519305e147480ecd3410052f07816c\"\u003e\u003ccode\u003e081f935\u003c/code\u003e\u003c/a\u003e Merge branch 'kytta-fix-dst' into 2026c\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8c9d69b125dabe489741e1eb24ba14fcf4a7e7c9\"\u003e\u003ccode\u003e8c9d69b\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into 2026c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.2...release_2026.3.post1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.22.1 to 4.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereject NaN in numeric range validators by \u003ca href=\"https://github.com/kudala-bharani\"\u003e\u003ccode\u003e@​kudala-bharani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/942\"\u003eBrianPugh/cyclopts#942\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/kudala-bharani\"\u003e\u003ccode\u003e@​kudala-bharani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/942\"\u003eBrianPugh/cyclopts#942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.25.1...v4.25.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.25.1...v4.25.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.25.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eallow_leading_hyphen=True\u003c/code\u003e positional values intact when a later char matches a short option by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/934\"\u003eBrianPugh/cyclopts#934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor subcommand-level configuration via the invoked command's app-stack (\u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/933\"\u003e#933\u003c/a\u003e) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/938\"\u003eBrianPugh/cyclopts#938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fail a hung test in 60s via pytest-timeout instead of stalling the job by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/937\"\u003eBrianPugh/cyclopts#937\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003especial thanks to \u003ca href=\"https://github.com/yilei\"\u003e\u003ccode\u003e@​yilei\u003c/code\u003e\u003c/a\u003e for identifying these bugs!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.25.0...v4.25.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.25.0...v4.25.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInteractive shell no longer exits on Ctrl-C or malformed input by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/925\"\u003eBrianPugh/cyclopts#925\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eReport unbalanced quotes as a TokenizationError instead of a raw ValueError by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/926\"\u003eBrianPugh/cyclopts#926\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): render root default_command params/usage in RST (Sphinx) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/924\"\u003eBrianPugh/cyclopts#924\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix link formatting in Sphinx to be blue even in code blocks by \u003ca href=\"https://github.com/relativityspace-jsmith\"\u003e\u003ccode\u003e@​relativityspace-jsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/922\"\u003eBrianPugh/cyclopts#922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix pre-commit cache key so hook environments are actually reused by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/928\"\u003eBrianPugh/cyclopts#928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: make codecov statuses informational (non-blocking) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/930\"\u003eBrianPugh/cyclopts#930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: speed up CI ~40% by parallelizing lint/type-check/docs and caching setup by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/931\"\u003eBrianPugh/cyclopts#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove low-value restatement comments by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/929\"\u003eBrianPugh/cyclopts#929\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/relativityspace-jsmith\"\u003e\u003ccode\u003e@​relativityspace-jsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/922\"\u003eBrianPugh/cyclopts#922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.24.0...v4.25.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.24.0...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eParameter.choices\u003c/code\u003e by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/921\"\u003eBrianPugh/cyclopts#921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConfigurable encoding for file \u003ccode\u003eConfig\u003c/code\u003e sources by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/918\"\u003eBrianPugh/cyclopts#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\u0026quot;sys_exit_if_non_zero_else_return\u0026quot;\u003c/code\u003e result action and document result_action modes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/907\"\u003eBrianPugh/cyclopts#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSphinx: add :anchor-prefix:/:anchor-suffix: to namespace ref labels by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/913\"\u003eBrianPugh/cyclopts#913\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/BrianPugh/cyclopts/commit/efc7da13c8f9eb88c396ceb151e08d07780616bc\"\u003e\u003ccode\u003eefc7da1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/942\"\u003e#942\u003c/a\u003e from kudala-bharani/fix/number-reject-nan\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/7a01b21e49d18c57d536083f12eac68e778fa840\"\u003e\u003ccode\u003e7a01b21\u003c/code\u003e\u003c/a\u003e fix: reject NaN in numeric range validators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f109666d39669ae81c28a7c6274ca2d0b640d2ae\"\u003e\u003ccode\u003ef109666\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/938\"\u003e#938\u003c/a\u003e from BrianPugh/fix-subcommand-config-appstack-933\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ee32db8adfbc32a16e5bef650d5cfe0388a2bc96\"\u003e\u003ccode\u003eee32db8\u003c/code\u003e\u003c/a\u003e docs: explain why default_parameter chains all frames while resolve uses only...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/31f77346580b3db5b94c8e348717719673bf7351\"\u003e\u003ccode\u003e31f7734\u003c/code\u003e\u003c/a\u003e fix: scope config resolution to the innermost invocation so re-entrant siblin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/234fc970afd187a49a42ffb80e22713a17287ebf\"\u003e\u003ccode\u003e234fc97\u003c/code\u003e\u003c/a\u003e test: cover subcommand-level configuration resolution (\u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/933\"\u003e#933\u003c/a\u003e family)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad76eb850ded309c466cf878beb382701c47e3f7\"\u003e\u003ccode\u003ead76eb8\u003c/code\u003e\u003c/a\u003e fix: honor subcommand-level configuration by resolving from the invoked comma...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/a804cf68eaa84f91022b7ed116efa7449af7d9e3\"\u003e\u003ccode\u003ea804cf6\u003c/code\u003e\u003c/a\u003e ci: fail a hung test in 60s via pytest-timeout instead of stalling the job (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f5233f958be003c418a2c348d54184fbcdce4adb\"\u003e\u003ccode\u003ef5233f9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/934\"\u003e#934\u003c/a\u003e from BrianPugh/fix-combined-short-leading-hyphen-932\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4356a86f9aeccf7d8b6bacdeb3799771becc375a\"\u003e\u003ccode\u003e4356a86\u003c/code\u003e\u003c/a\u003e style: tighten comments on the mistyped-combined-short message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.22.1...v4.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.14.1 to 4.15.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.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.1...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.5 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev...\n\n_Description has been truncated_","html_url":"https://github.com/curento/prefect/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/curento%2Fprefect/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"}},{"old_version":"5.5.0","new_version":"7.1.8","update_type":"major","path":"/gsuite","pr_created_at":"2026-09-15T22:44:12.000Z","version_change":"5.5.0 → 7.1.8","issue":{"uuid":"5468119417","node_id":"PR_kwDOMeL2Hc8AAAABDryu6g","number":34,"state":"open","title":"Bump cachetools from 5.5.0 to 7.1.8 in /gsuite","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T22:44:12.000Z","updated_at":"2026-09-15T22:44:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"cachetools","old_version":"5.5.0","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/gsuite","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 5.5.0 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.0...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=5.5.0\u0026new-version=7.1.8)](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/corsis-tech/vp-scripts-public/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/corsis-tech%2Fvp-scripts-public/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"7.1.3","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-15T15:48:05.000Z","version_change":"7.1.3 → 7.1.8","issue":{"uuid":"5464198318","node_id":"PR_kwDONWfh6s8AAAABDomlSQ","number":1893,"state":"open","title":"chore(deps): Bump the python group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T15:48:05.000Z","updated_at":"2026-09-15T15:55:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python","update_count":73,"packages":[{"name":"tomlkit","old_version":"0.15.0","new_version":"0.15.1","repository_url":"https://github.com/python-poetry/tomlkit"},{"name":"pytest","old_version":"9.0.3","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ty","old_version":"0.0.38","new_version":"0.0.79","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.13","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"huggingface-hub","old_version":"1.15.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"llama-index-core","old_version":"0.14.22","new_version":"0.14.24","repository_url":"https://github.com/run-llama/llama_index"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"nats-py","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/nats-io/nats.py"},{"name":"llama-index-vector-stores-milvus","old_version":"1.1.0","new_version":"1.2.0"},{"name":"llama-index-readers-file","old_version":"0.6.0","new_version":"0.7.0"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"openinference-instrumentation","old_version":"0.1.51","new_version":"0.1.61","repository_url":"https://github.com/Arize-ai/openinference"},{"name":"openinference-instrumentation-llama-index","old_version":"4.4.2","new_version":"4.4.8","repository_url":"https://github.com/Arize-ai/openinference"},{"name":"opentelemetry-api","old_version":"1.42.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"llama-index-storage-docstore-mongodb","old_version":"0.5.0","new_version":"0.6.0"},{"name":"llama-index-llms-openai-like","old_version":"0.7.2","new_version":"0.8.0"},{"name":"transformers","old_version":"5.8.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"azure-storage-file-datalake","old_version":"12.24.0","new_version":"12.25.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"adlfs","old_version":"2026.5.0","new_version":"2026.8.0","repository_url":"https://github.com/fsspec/adlfs"},{"name":"redis","old_version":"7.4.0","new_version":"7.4.1","repository_url":"https://github.com/redis/redis-py"},{"name":"openai","old_version":"2.37.0","new_version":"2.54.0","repository_url":"https://github.com/openai/openai-python"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"llama-index-embeddings-openai-like","old_version":"0.3.1","new_version":"0.4.0"},{"name":"llama-index-postprocessor-cohere-rerank","old_version":"0.8.0","new_version":"0.10.0"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"pypdf","old_version":"6.11.0","new_version":"6.16.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"langfuse","old_version":"4.6.1","new_version":"4.15.1","repository_url":"https://github.com/langfuse/langfuse"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"apprise","old_version":"1.10.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"langchain-neo4j","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/langchain-ai/langchain-neo4j"},{"name":"neo4j","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/neo4j/neo4j-python-driver"},{"name":"starlette","old_version":"1.1.0","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"cryptography","old_version":"48.0.0","new_version":"48.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"matplotlib","old_version":"3.10.9","new_version":"3.11.1","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas-stubs","old_version":"3.0.0.260204","new_version":"3.0.5.260730","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"fastmcp","old_version":"3.3.1","new_version":"3.4.7","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"llama-index-llms-azure-openai","old_version":"0.5.5","new_version":"0.6.0"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.2.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"llama-index-embeddings-text-embeddings-inference","old_version":"0.5.0","new_version":"0.6.0"},{"name":"python-multipart","old_version":"0.0.29","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"dagster-webserver","old_version":"1.13.5","new_version":"1.13.21","repository_url":"https://github.com/dagster-io/dagster"},{"name":"dagster-apprise","old_version":"0.0.2","new_version":"0.0.3"},{"name":"clickhouse-connect","old_version":"1.0.1","new_version":"1.7.2","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"pymilvus","old_version":"2.6.14","new_version":"2.6.17","repository_url":"https://github.com/milvus-io/pymilvus"},{"name":"sqlalchemy","old_version":"2.0.49","new_version":"2.0.52","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"python-dotenv","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 52 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tomlkit](https://github.com/python-poetry/tomlkit) | `0.15.0` | `0.15.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.38` | `0.0.79` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.16.5` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.15.0` | `1.29.0` |\n| [llama-index-core](https://github.com/run-llama/llama_index) | `0.14.22` | `0.14.24` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.15.0` |\n| [nats-py](https://github.com/nats-io/nats.py) | `2.14.0` | `2.15.0` |\n| llama-index-vector-stores-milvus | `1.1.0` | `1.2.0` |\n| llama-index-readers-file | `0.6.0` | `0.7.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [openinference-instrumentation](https://github.com/Arize-ai/openinference) | `0.1.51` | `0.1.61` |\n| [openinference-instrumentation-llama-index](https://github.com/Arize-ai/openinference) | `4.4.2` | `4.4.8` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.0` | `1.44.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| llama-index-storage-docstore-mongodb | `0.5.0` | `0.6.0` |\n| llama-index-llms-openai-like | `0.7.2` | `0.8.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.8.1` | `5.16.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.141.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.24.0` | `12.25.0` |\n| [adlfs](https://github.com/fsspec/adlfs) | `2026.5.0` | `2026.8.0` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `7.4.1` |\n| [openai](https://github.com/openai/openai-python) | `2.37.0` | `2.54.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.8` |\n| llama-index-embeddings-openai-like | `0.3.1` | `0.4.0` |\n| llama-index-postprocessor-cohere-rerank | `0.8.0` | `0.10.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.11.0` | `6.16.2` |\n| [langfuse](https://github.com/langfuse/langfuse) | `4.6.1` | `4.15.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.13.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [langchain-neo4j](https://github.com/langchain-ai/langchain-neo4j) | `0.9.0` | `0.10.0` |\n| [neo4j](https://github.com/neo4j/neo4j-python-driver) | `6.2.0` | `6.3.0` |\n| [starlette](https://github.com/Kludex/starlette) | `1.1.0` | `1.6.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `48.0.0` | `48.0.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.9` | `3.11.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `3.0.0.260204` | `3.0.5.260730` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.3.1` | `3.4.7` |\n| llama-index-llms-azure-openai | `0.5.5` | `0.6.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.2.0` |\n| llama-index-embeddings-text-embeddings-inference | `0.5.0` | `0.6.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.29` | `0.0.32` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.52.4` |\n| [dagster-webserver](https://github.com/dagster-io/dagster) | `1.13.5` | `1.13.21` |\n| dagster-apprise | `0.0.2` | `0.0.3` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `1.0.1` | `1.7.2` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [pymilvus](https://github.com/milvus-io/pymilvus) | `2.6.14` | `2.6.17` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.49` | `2.0.52` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.2` | `1.2.3` |\n\n\nUpdates `tomlkit` from 0.15.0 to 0.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-poetry/tomlkit/releases\"\u003etomlkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix inline table separator after append by \u003ca href=\"https://github.com/cyliu0\"\u003e\u003ccode\u003e@​cyliu0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/477\"\u003epython-poetry/tomlkit#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump idna from 3.7 to 3.15 in /docs 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/python-poetry/tomlkit/pull/481\"\u003epython-poetry/tomlkit#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump idna from 3.7 to 3.15 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/python-poetry/tomlkit/pull/480\"\u003epython-poetry/tomlkit#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump urllib3 from 2.5.0 to 2.7.0 in /docs 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/python-poetry/tomlkit/pull/475\"\u003epython-poetry/tomlkit#475\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/python-poetry/tomlkit/pull/478\"\u003epython-poetry/tomlkit#478\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/python-poetry/tomlkit/pull/484\"\u003epython-poetry/tomlkit#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicated comma when removing a middle inline table element by \u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/486\"\u003epython-poetry/tomlkit#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd native \u003cstrong\u003econtains\u003c/strong\u003e to Container, Table and InlineTable by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/487\"\u003epython-poetry/tomlkit#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake Source index-based instead of materializing a char list by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/489\"\u003epython-poetry/tomlkit#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject surrogate code points in \\U unicode escapes by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/493\"\u003epython-poetry/tomlkit#493\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/python-poetry/tomlkit/pull/496\"\u003epython-poetry/tomlkit#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eScan character runs in bulk while parsing by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/490\"\u003epython-poetry/tomlkit#490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix doubled comma when inserting into a comma-first array by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/499\"\u003epython-poetry/tomlkit#499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject tab characters in bare keys by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/497\"\u003epython-poetry/tomlkit#497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject non-hex digits in \\u and \\U escapes by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/501\"\u003epython-poetry/tomlkit#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBulk-scan single-line string bodies by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003epython-poetry/tomlkit#491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the internal TOMLChar wrapper by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/492\"\u003epython-poetry/tomlkit#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix corrupt output when adding to a dotted key inside an inline table by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/500\"\u003epython-poetry/tomlkit#500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompare StringType members by identity instead of building a set by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/502\"\u003epython-poetry/tomlkit#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge super tables in place instead of deep-copying on every merge by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/503\"\u003epython-poetry/tomlkit#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove a value replacing a table out of the table region by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/506\"\u003epython-poetry/tomlkit#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore dumps() delegating to as_string for non-Mapping wrappers by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/508\"\u003epython-poetry/tomlkit#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit parser nesting depth instead of crashing with RecursionError by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/510\"\u003epython-poetry/tomlkit#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefix every line of a multiline comment with # by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/511\"\u003epython-poetry/tomlkit#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a native OutOfOrderTableProxy.\u003cstrong\u003econtains\u003c/strong\u003e by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/515\"\u003epython-poetry/tomlkit#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePlace inline-table separator after the value, not a trailing comment (fix \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/512\"\u003e#512\u003c/a\u003e) by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/514\"\u003epython-poetry/tomlkit#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject a table redefined after its parent table header by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/516\"\u003epython-poetry/tomlkit#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't build a discarded error when an array closes right after a value by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/517\"\u003epython-poetry/tomlkit#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate out-of-order tables incrementally while parsing by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/509\"\u003epython-poetry/tomlkit#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn a single key from key() for a single-element list (fixes \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/430\"\u003e#430\u003c/a\u003e) by \u003ca href=\"https://github.com/tienvantranspk-tech\"\u003e\u003ccode\u003e@​tienvantranspk-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/520\"\u003epython-poetry/tomlkit#520\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/python-poetry/tomlkit/pull/522\"\u003epython-poetry/tomlkit#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up unwrap() by resolving keys from the key map instead of items() by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/521\"\u003epython-poetry/tomlkit#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge AoT fragments when building an out-of-order table proxy by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/507\"\u003epython-poetry/tomlkit#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBulk-scan multiline string bodies by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/518\"\u003epython-poetry/tomlkit#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereject array-of-tables header missing its second closing bracket by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/519\"\u003epython-poetry/tomlkit#519\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/python-poetry/tomlkit/pull/541\"\u003epython-poetry/tomlkit#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ParseError when a sub-table extends an array of tables out of order by \u003ca href=\"https://github.com/sarathfrancis90\"\u003e\u003ccode\u003e@​sarathfrancis90\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/498\"\u003epython-poetry/tomlkit#498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRender inline tables in O(n) instead of O(n²) by \u003ca href=\"https://github.com/tfoutrein\"\u003e\u003ccode\u003e@​tfoutrein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/525\"\u003epython-poetry/tomlkit#525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicated prefix and captured sibling when replacing a dotted key with a table by \u003ca href=\"https://github.com/Labib-Bin-Salam\"\u003e\u003ccode\u003e@​Labib-Bin-Salam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/526\"\u003epython-poetry/tomlkit#526\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject tables inserted into inline tables by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/532\"\u003epython-poetry/tomlkit#532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eraise on malformed array element instead of dropping it by \u003ca href=\"https://github.com/netliomax25-code\"\u003e\u003ccode\u003e@​netliomax25-code\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/527\"\u003epython-poetry/tomlkit#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject out-of-order concrete+super table redefinitions at parse time by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/530\"\u003epython-poetry/tomlkit#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep newline after dotted inline table by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/533\"\u003epython-poetry/tomlkit#533\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/python-poetry/tomlkit/pull/548\"\u003epython-poetry/tomlkit#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump soupsieve from 2.5 to 2.8.4 in /docs 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/python-poetry/tomlkit/pull/560\"\u003epython-poetry/tomlkit#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump soupsieve from 2.4.1 to 2.8.4 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/python-poetry/tomlkit/pull/559\"\u003epython-poetry/tomlkit#559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve whitespace when replacing super tables by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/534\"\u003epython-poetry/tomlkit#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve table display names on self assignment by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/537\"\u003epython-poetry/tomlkit#537\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/tomlkit/blob/master/CHANGELOG.md\"\u003etomlkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.15.1] - 2026-07-17\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up membership tests (\u003ccode\u003ekey in ...\u003c/code\u003e) on \u003ccode\u003eContainer\u003c/code\u003e, \u003ccode\u003eTable\u003c/code\u003e and \u003ccode\u003eInlineTable\u003c/code\u003e with native \u003ccode\u003e__contains__\u003c/code\u003e implementations, avoiding the inherited \u003ccode\u003eMutableMapping\u003c/code\u003e round-trip through \u003ccode\u003e__getitem__\u003c/code\u003e (which resolves the value and builds an exception on every absent key). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by making \u003ccode\u003eSource\u003c/code\u003e index-based: it now tracks an integer position over the input string instead of materializing a list of \u003ccode\u003e(index, char)\u003c/code\u003e tuples up front, so construction is O(1) and state save/restore no longer copies an iterator. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by scanning character runs in bulk: \u003ccode\u003eSource.advance_while\u003c/code\u003e/\u003ccode\u003eadvance_until\u003c/code\u003e consume a whole run of whitespace, bare-key or number characters in a single pass over the input string instead of one \u003ccode\u003einc()\u003c/code\u003e call per character. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of single-line strings by bulk-appending the run of ordinary characters up to the next delimiter, backslash or control character in one pass, instead of one character at a time. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by removing the internal \u003ccode\u003eTOMLChar\u003c/code\u003e wrapper: the parser now reads plain \u003ccode\u003estr\u003c/code\u003e characters from \u003ccode\u003eSource\u003c/code\u003e and detects end-of-input positionally, avoiding a per-character object construction and method dispatch. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing by comparing \u003ccode\u003eStringType\u003c/code\u003e members by identity (\u003ccode\u003eis\u003c/code\u003e) instead of building a set on every \u003ccode\u003eis_basic\u003c/code\u003e/\u003ccode\u003eis_literal\u003c/code\u003e/\u003ccode\u003eis_singleline\u003c/code\u003e/\u003ccode\u003eis_multiline\u003c/code\u003e call, avoiding millions of enum hashes while parsing. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up merging super tables by merging in place instead of deep-copying the growing target on every merge, turning the parse of documents with many subtables under a shared super table (e.g. consecutive \u003ccode\u003e[a.b.c]\u003c/code\u003e / \u003ccode\u003e[a.b.d]\u003c/code\u003e headers) from O(n²) into O(n). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up membership tests (\u003ccode\u003ekey in ...\u003c/code\u003e) on out-of-order tables with a native \u003ccode\u003eOutOfOrderTableProxy.__contains__\u003c/code\u003e, completing \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/483\"\u003e#483\u003c/a\u003e for the last mapping type that still inherited the slow \u003ccode\u003eMutableMapping\u003c/code\u003e mixin (which resolves the value and builds an exception on every absent key). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing documents with many dotted keys or table headers sharing a prefix by validating out-of-order tables incrementally: each new fragment is merged into a cached validation container once, instead of re-merging (and deep-copying) every earlier fragment on each append, turning a super-cubic worst case into linear time (80 shared-prefix dotted keys: ~8 s → ~10 ms). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of arrays that close right after a value (e.g. the \u003ccode\u003efiles = [...]\u003c/code\u003e blocks that dominate lock files): the parser no longer attempts to read a value while sitting on the closing \u003ccode\u003e]\u003c/code\u003e, which previously built an \u003ccode\u003eUnexpectedCharError\u003c/code\u003e just to discard it — and constructing that exception eagerly computes a line/column by scanning the whole document, making it O(document size) per such array. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up parsing of multiline strings by bulk-appending the run of ordinary characters — across raw line feeds and tabs — up to the next delimiter, backslash, carriage return or control character, instead of one character at a time. This extends to \u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003e/\u003ccode\u003e'''\u003c/code\u003e bodies the single-line fast path added in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/491\"\u003e#491\u003c/a\u003e; a \u003ccode\u003e\\r\u003c/code\u003e still stops the scan so \u003ccode\u003e\\r\\n\u003c/code\u003e stays validated and byte-for-byte preserved. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eunwrap()\u003c/code\u003e (converting a parsed document to a plain \u003ccode\u003edict\u003c/code\u003e) by resolving each key directly from the container's key map instead of iterating the inherited \u003ccode\u003eMutableMapping\u003c/code\u003e view, which rebuilt a \u003ccode\u003eSingleKey\u003c/code\u003e from the bare string for every key just to re-look-up the value. Out-of-order tables still resolve through their proxy, so their validation is unchanged. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up rendering (\u003ccode\u003eas_string()\u003c/code\u003e / \u003ccode\u003edumps()\u003c/code\u003e) of inline tables with many keys by precomputing the last-key and last-deleted-element indices in a single pass, instead of rescanning the remaining body on every separator comma — turning an O(n²) render into O(n). (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise on malformed array element instead of dropping it, (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estring()\u003c/code\u003e dropping a leading newline of a multiline string on round-trip: a value beginning with a newline is now rendered with an extra leading newline (the one the parser trims after the opening delimiter) so it survives re-parsing.\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated comma when removing a non-edge element from a parsed inline table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated comma when appending or inserting into a comma-first formatted array. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/499\"\u003e#499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eParseError\u003c/code\u003e when a sub-table extends the last element of an array of tables after an unrelated table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix unparseable serialization when adding a key to a dotted-key table inside an inline table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a table replaced by a plain value being serialized inside the preceding table's body when other tables follow; the value now moves before the first table like other root-level values. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix assigning a table over a dotted key (e.g. \u003ccode\u003edoc[\u0026quot;a\u0026quot;] = {...}\u003c/code\u003e where \u003ccode\u003ea\u003c/code\u003e came from \u003ccode\u003ea.b = ...\u003c/code\u003e): the dotted prefix was duplicated onto the new \u003ccode\u003e[a]\u003c/code\u003e header, and the header then swallowed any sibling that follows it on round-trip. The replacement now renders as a plain table and, when needed, moves before the inline entries (values and dotted keys) it would otherwise capture. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/513\"\u003e#513\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003edumps()\u003c/code\u003e rendering mapping-like wrappers around a parsed document (e.g. \u003ccode\u003edotty_dict\u003c/code\u003e's \u003ccode\u003eDotty\u003c/code\u003e) through their delegated \u003ccode\u003eas_string\u003c/code\u003e, preserving the original table order and layout instead of re-encoding through a plain dict — a 0.15.0 regression. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix uncontrolled recursion when parsing deeply nested documents: crafted input could crash the process with a \u003ccode\u003eRecursionError\u003c/code\u003e. Values nested more than 100 levels deep and keys with more than 100 dotted fragments now raise \u003ccode\u003eParseError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecomment()\u003c/code\u003e producing invalid TOML for a multiline string by prefixing every line with \u003ccode\u003e#\u003c/code\u003e, not just the first. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/449\"\u003e#449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the separator comma being swallowed by a trailing comment when appending a key to a multiline inline table, leaving the new key without a separator so the result no longer round-trips. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eKeyAlreadyPresent\u003c/code\u003e error when parsing or accessing an out-of-order table whose array-of-tables elements are split across the table's parts. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOut-of-order value-vs-table and dotted-key-vs-table redefinitions are now rejected at parse time instead of being silently accepted or raising only on access. The parser also detects when a non-dotted key is a prefix of an existing dotted key, matching the stdlib \u003ccode\u003etomllib\u003c/code\u003e behaviour. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject tables inserted into inline tables instead of serializing invalid TOML. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix assigning an array of tables over a dotted key (e.g. \u003ccode\u003edoc[\u0026quot;a\u0026quot;] = aot(...)\u003c/code\u003e where \u003ccode\u003ea\u003c/code\u003e came from \u003ccode\u003ea.b = ...\u003c/code\u003e): the new \u003ccode\u003e[[a]]\u003c/code\u003e header kept the dotted key's inline position and swallowed the following dotted sibling on round-trip. The array of tables now renders past the inline entries it would otherwise capture, mirroring the table fix for \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/513\"\u003e#513\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a new top-level scalar being captured by a table rendered from a dotted key: appending a scalar after a dotted-key entry (e.g. \u003ccode\u003ea.b = 1\u003c/code\u003e) whose table had gained a \u003ccode\u003e[a.c]\u003c/code\u003e-style child placed the scalar inside that table's scope, silently re-nesting it on round-trip. Scalars now move before such an entry, like they do before regular tables. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization with a duplicated \u003ccode\u003e[table]\u003c/code\u003e header when adding a key to an out-of-order table whose concrete header is declared after its sub-tables; the new key now lands in the existing concrete part instead of giving the header-less super part a second header. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a table's display name (its exact header spelling, including whitespace and quoting) being normalised when the table is assigned onto itself, e.g. \u003ccode\u003edoc[k] = doc[k]\u003c/code\u003e rewriting \u003ccode\u003e[keys .'a'.'c']\u003c/code\u003e to \u003ccode\u003e[keys.a.'c']\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing newlines when appending a key after a dotted inline table, including when the original document has no trailing newline. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve trailing whitespace when replacing a super table, including assigning it onto itself. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estr()\u003c/code\u003e and \u003ccode\u003erepr()\u003c/code\u003e of out-of-order table proxies to show their merged values. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject decimal integer literals that exceed Python's integer-string conversion limit instead of coercing them to infinity. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/1bd7e3bc5bcc957d359a6c4d8e420163f32ac009\"\u003e\u003ccode\u003e1bd7e3b\u003c/code\u003e\u003c/a\u003e chore: release 0.15..1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/94e62fbef9d16093dec86728888474197f4a5cc7\"\u003e\u003ccode\u003e94e62fb\u003c/code\u003e\u003c/a\u003e Float is not a sequence  (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/495a42ecc9119eaaeb895def0fd025a71cd1cf60\"\u003e\u003ccode\u003e495a42e\u003c/code\u003e\u003c/a\u003e Fix top-level scalar captured by a table rendered from a dotted key (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/21a4942ed31e773061c9fc047d55b1bb3c637ee3\"\u003e\u003ccode\u003e21a4942\u003c/code\u003e\u003c/a\u003e reject a comment containing line breaks in Item.comment and add_line (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/8cd44f58b499da3c80a29bc877a512665a15e0bb\"\u003e\u003ccode\u003e8cd44f5\u003c/code\u003e\u003c/a\u003e fix: preserve leading newline of multiline string built with string() (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/67d3e86502706df2a9ed67114ab67e25bcdcbbb7\"\u003e\u003ccode\u003e67d3e86\u003c/code\u003e\u003c/a\u003e Fix array of tables replacing a dotted key swallowing the next sibling (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/542\"\u003e#542\u003c/a\u003e)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/e23a25438c6cc9b8cc28b6dcf76dc52f9c7a33e3\"\u003e\u003ccode\u003ee23a254\u003c/code\u003e\u003c/a\u003e fix: avoid duplicate table header when adding a key to an out-of-order table ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/34e51e2d6d09af86970f266a4217cea839fdc347\"\u003e\u003ccode\u003e34e51e2\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md to reflect recent fixes and enhancements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/b48c094775fba4cb3c16dea4c302ae5e371ac4e9\"\u003e\u003ccode\u003eb48c094\u003c/code\u003e\u003c/a\u003e reject overlong decimal integer instead of coercing to inf (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/cc05afa962244b3d1c781a7fc54f66b7f29ef8b7\"\u003e\u003ccode\u003ecc05afa\u003c/code\u003e\u003c/a\u003e Represent out-of-order table proxies with merged values (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-poetry/tomlkit/compare/0.15.0...0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.3 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\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/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1\"\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.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/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 v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\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/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.38 to 0.0.79\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.79\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-07.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid dict keyword-call panics when typing is shadowed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28292\"\u003e#28292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover configs in models derived from legacy generic classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28397\"\u003e#28397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize recursive collection-use constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28332\"\u003e#28332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecover cycles when constructing known class instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28289\"\u003e#28289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/pull/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostic improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eLiteral\u003c/code\u003e fixes for diagnostics flagging invalid type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28185\"\u003e#28185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eawait\u003c/code\u003e fixes for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28169\"\u003e#28169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eassert_never\u003c/code\u003e fixes for redundant final \u003ccode\u003eelif\u003c/code\u003e branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28178\"\u003e#28178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd defensive assertion fallback for redundant \u003ccode\u003eelif\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28179\"\u003e#28179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd rules to detect always-truthy and always-falsy conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28034\"\u003e#28034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire a direct dependency for \u003ccode\u003ereveal_type\u003c/code\u003e backport fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28177\"\u003e#28177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest variable-length tuple annotations for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28168\"\u003e#28168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign \u003ccode\u003eTypeIs\u003c/code\u003e and \u003ccode\u003eisinstance\u003c/code\u003e narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28193\"\u003e#28193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid falling back to \u003ccode\u003eUnknown\u003c/code\u003e when collecting type context constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28297\"\u003e#28297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ef is identity(f)\u003c/code\u003e evaluates to \u003ccode\u003eLiteral[True]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28360\"\u003e#28360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix callable specialization with union-valued \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28085\"\u003e#28085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer variance through recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28077\"\u003e#28077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow types with ordered length comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28264\"\u003e#28264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve gradual type context during generic call inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28091\"\u003e#28091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve nominal subtyping for top-materialized protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28271\"\u003e#28271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve outer type variables during \u003ccode\u003eParamSpec\u003c/code\u003e inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28306\"\u003e#28306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve protocol intersections when narrowing gradual types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28391\"\u003e#28391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePromote literals in nested (non-covariant) positions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28389\"\u003e#28389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSolve formal unions using constraint-sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28312\"\u003e#28312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28331\"\u003e#28331\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/cf09d2a4d7614f648e9109dce609887499a7c6ee...bc016545988403f13b2dd9b56e88b931683c80b1\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary work when building specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28369\"\u003e#28369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBypass materialization queries for simple types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28367\"\u003e#28367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache exception suppression for context managers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28376\"\u003e#28376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntern statement call predicates (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28373\"\u003e#28373\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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.79\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-07.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid dict keyword-call panics when typing is shadowed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28292\"\u003e#28292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover configs in models derived from legacy generic classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28397\"\u003e#28397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize recursive collection-use constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28332\"\u003e#28332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecover cycles when constructing known class instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28289\"\u003e#28289\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/pull/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostic improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eLiteral\u003c/code\u003e fixes for diagnostics flagging invalid type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28185\"\u003e#28185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eawait\u003c/code\u003e fixes for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28169\"\u003e#28169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eassert_never\u003c/code\u003e fixes for redundant final \u003ccode\u003eelif\u003c/code\u003e branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28178\"\u003e#28178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd defensive assertion fallback for redundant \u003ccode\u003eelif\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28179\"\u003e#28179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd rules to detect always-truthy and always-falsy conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28034\"\u003e#28034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire a direct dependency for \u003ccode\u003ereveal_type\u003c/code\u003e backport fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28177\"\u003e#28177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest variable-length tuple annotations for redundant conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28168\"\u003e#28168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlign \u003ccode\u003eTypeIs\u003c/code\u003e and \u003ccode\u003eisinstance\u003c/code\u003e narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28193\"\u003e#28193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid falling back to \u003ccode\u003eUnknown\u003c/code\u003e when collecting type context constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28297\"\u003e#28297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ef is identity(f)\u003c/code\u003e evaluates to \u003ccode\u003eLiteral[True]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28360\"\u003e#28360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix callable specialization with union-valued \u003ccode\u003eParamSpec\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28085\"\u003e#28085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer variance through recursive protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28077\"\u003e#28077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow types with ordered length comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28264\"\u003e#28264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve gradual type context during generic call inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28091\"\u003e#28091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve nominal subtyping for top-materialized protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28271\"\u003e#28271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve outer type variables during \u003ccode\u003eParamSpec\u003c/code\u003e inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28306\"\u003e#28306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve protocol intersections when narrowing gradual types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28391\"\u003e#28391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePromote literals in nested (non-covariant) positions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28389\"\u003e#28389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSolve formal unions using constraint-sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28312\"\u003e#28312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28331\"\u003e#28331\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/cf09d2a4d7614f648e9109dce609887499a7c6ee...bc016545988403f13b2dd9b56e88b931683c80b1\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary work when building specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28369\"\u003e#28369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBypass materialization queries for simple types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28367\"\u003e#28367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache exception suppression for context managers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28376\"\u003e#28376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntern statement call predicates (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28373\"\u003e#28373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily compute argument-context specializations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28378\"\u003e#28378\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/ty/commit/b4cd79275b7ce22c4cf4208f8b005adb53e92523\"\u003e\u003ccode\u003eb4cd792\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.79 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4484\"\u003e#4484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/52f2d5b12ff4a86f1100f3b9c3e2d61b086d8a89\"\u003e\u003ccode\u003e52f2d5b\u003c/code\u003e\u003c/a\u003e Add a GitHub repository threat model for ty (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4481\"\u003e#4481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fd0d789cc54f9a234da75025ef6d0777280675be\"\u003e\u003ccode\u003efd0d789\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4476\"\u003e#4476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7e7a87da9849d3f322690ae5b74b0409799668b6\"\u003e\u003ccode\u003e7e7a87d\u003c/code\u003e\u003c/a\u003e Improve rooster-generated changelog sections (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4473\"\u003e#4473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f862d1f3230ec51f9a27e53ccba34a1f0f5cd1d3\"\u003e\u003ccode\u003ef862d1f\u003c/code\u003e\u003c/a\u003e Document mappings for new ty rules (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4475\"\u003e#4475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/23fced1ccadb590bb019b05e4ebc34a7f563d028\"\u003e\u003ccode\u003e23fced1\u003c/code\u003e\u003c/a\u003e Allow Ruff to format our docs examples (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4457\"\u003e#4457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3c907bc81cd4bfd40058648bf196b7626a61f0b8\"\u003e\u003ccode\u003e3c907bc\u003c/code\u003e\u003c/a\u003e [ty] Embed archive checksums in the shell installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4458\"\u003e#4458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/873885ea8e73a49b6c95e38cdec3186e3db2ef97\"\u003e\u003ccode\u003e873885e\u003c/code\u003e\u003c/a\u003e [ty] Use the shared release smoke-test action (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4461\"\u003e#4461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/dca9f9873896bc3bfdb7db6459fd54f80fac3fa6\"\u003e\u003ccode\u003edca9f98\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.78 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4452\"\u003e#4452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/2bd3de297915d77361aab430d448a7d51fc5774b\"\u003e\u003ccode\u003e2bd3de2\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003estrict-literal-narrowing\u003c/code\u003e to \u003ccode\u003estrict-equality-semantics\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/4438\"\u003e#4438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.38...0.0.79\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.16.5\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.16.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.16.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.16.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-20.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH116\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26460\"\u003e#26460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Restrict \u003ccode\u003edelete-full-slice\u003c/code\u003e to lists (\u003ccode\u003eFURB131\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27711\"\u003e#27711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Skip \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e when the \u003ccode\u003eopen\u003c/code\u003e argument is a file descriptor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27643\"\u003e#27643\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eInvalidInstruction\u003c/code\u003e on Windows CPUs that do not support \u003ccode\u003ePOPCNT\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27803\"\u003e#27803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Emit semantic syntax errors in string type definitions as \u003ccode\u003eF722\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27835\"\u003e#27835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow \u003ccode\u003eos._exit\u003c/code\u003e imports in \u003ccode\u003eimport-private-name\u003c/code\u003e (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27738\"\u003e#27738\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/9e4938c4a60bed3e87a11ee1e1db1bd23f4d964a\"\u003e\u003ccode\u003e9e4938c\u003c/code\u003e\u003c/a\u003e Bump 0.16.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28110\"\u003e#28110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aad0e909ef1390f4b2a3ba8aa0a67fb8ea5cbacd\"\u003e\u003ccode\u003eaad0e90\u003c/code\u003e\u003c/a\u003e Allow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5fdab73c5052350400c36b08c5d7710210343bc4\"\u003e\u003ccode\u003e5fdab7...\n\n_Description has been truncated_","html_url":"https://github.com/bbvch-ai/aihub-core/pull/1893","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbvch-ai%2Faihub-core/issues/1893","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1893/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-15T03:29:23.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5457133221","node_id":"PR_kwDOMkdPVc8AAAABDi7FLA","number":1002,"state":"open","title":"Bump the minor-and-patch-updates group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-15T03:29:23.000Z","updated_at":"2026-09-15T03:37:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch-updates","update_count":9,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"faker","old_version":"40.36.0","new_version":"40.38.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"pytest-rerunfailures","old_version":"16.6","new_version":"16.6.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinxcontrib-mermaid","old_version":"2.1.0","new_version":"2.1.1","repository_url":"https://github.com/mgaitan/sphinxcontrib-mermaid"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch-updates group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.3` |\n| [faker](https://github.com/joke2k/faker) | `40.36.0` | `40.38.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.6` | `16.6.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [sphinxcontrib-mermaid](https://github.com/mgaitan/sphinxcontrib-mermaid) | `2.1.0` | `2.1.1` |\n\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.1.1 to 6.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.3 (2026-09-02)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2165901: External parameter entity parsing was allowed by default\n(with \u003ccode\u003eresolve_entities=\u0026quot;internal\u0026quot;\u003c/code\u003e).\nIssue found by Tomer Fichman.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.1.2 (2026-08-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#526: Some build files were missing in the sdist.\nPatch by Nicola Soranzo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome minor corrections for error handling cases.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt with Cython 3.2.9.\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/lxml/lxml/commit/3c1a4c7f2d5a3c19efe01adfd3c33ac3c8fe52c1\"\u003e\u003ccode\u003e3c1a4c7\u003c/code\u003e\u003c/a\u003e Prepare release of 6.1.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/c1191fc55b8d574544203d07e7a02ba3378ced8d\"\u003e\u003ccode\u003ec1191fc\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/03ec3123b9683e7f02ce659f34322667683d3eef\"\u003e\u003ccode\u003e03ec312\u003c/code\u003e\u003c/a\u003e Disable parameter entity parsing when internal-only entity parsing is requested.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/11d03e922e0a7845131df3ab2fb5e894c0ced0ab\"\u003e\u003ccode\u003e11d03e9\u003c/code\u003e\u003c/a\u003e Build: Prevent duplicate Py3.8 wheel builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9efc586ed3555be22548a3188f7f435826834961\"\u003e\u003ccode\u003e9efc586\u003c/code\u003e\u003c/a\u003e Build: Exclude musllinux-ARM from Py3.8 wheel building to prevent slow emulat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9716fb1e1a80db4ba5e36bf99947dfccd8730471\"\u003e\u003ccode\u003e9716fb1\u003c/code\u003e\u003c/a\u003e Build: Include older PyPy versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/0f3327d3c8fc1ba01c90a866770ad8c4889e537f\"\u003e\u003ccode\u003e0f3327d\u003c/code\u003e\u003c/a\u003e Build: Exclude Win-Aarch64 from wheel build.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6967c960976541979570099de9866af398fb292f\"\u003e\u003ccode\u003e6967c96\u003c/code\u003e\u003c/a\u003e Build: Make all built wheels downloadable even if they don't pass the release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/061218d210747a1181dea76fb6b6d0eebe946b2d\"\u003e\u003ccode\u003e061218d\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.15 i686 wheels from validation (because they are intention...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ce9fe0dd26bd5b64fe03b6bcdf68a997ee5a2596\"\u003e\u003ccode\u003ece9fe0d\u003c/code\u003e\u003c/a\u003e Build: Fix Py3.8 windows build.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.1.1...lxml-6.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.7.19 to 2026.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.9.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#615](https://github.com/mrabarnett/mrab-regex/issues/615): Fix Python API error propagation in match helpers\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/616\"\u003e#616\u003c/a\u003e: Preserve Python Exceptions in Input Decoding and String Detachment\u003c/p\u003e\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/617\"\u003e#617\u003c/a\u003e: Prevent Invalid Pointer Use and Exception State Corruption in Byte String Joining\u003c/p\u003e\n\u003cp\u003ePR \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/618\"\u003e#618\u003c/a\u003e: Propagate Allocation and Internal Errors During Pattern Compilation and Scanner Execution\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.9.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer supports building for free-threaded Python 3.13.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer needs nor supports cpython-freethreading option.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated cibuildwheel.\nSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 611: Heap out-of-bounds write at compile time\nGit issue 612: count_one() size underflow through the stale required-string cache\nGit issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\nGit issue 614: build_GROUP() does not propagate the match direction\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.12\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 607: SIGSEGV: NULL pointer dereference in `basic_match()` when `(?R)`/`(?0)` recursion is used inside a fuzzy-matching quantifier\nGit issue 608: SIGSEGV: out-of-bounds read in `bytes1_char_at()` with `DOTALL` + a fuzzy constraint + `(?r)` reverse-direction matching\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eClarified that the POSIX flag makes it look for only the longest overall match.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/57f366fdbd9b8346d3b1a95b99cd81a9e91db367\"\u003e\u003ccode\u003e57f366f\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer supports building for free-threaded Pyt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/a1d72bace2f7222e310b32c595771686a59d0388\"\u003e\u003ccode\u003ea1d72ba\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer needs nor supports cpython-freethreadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/c8d0aa48f52feb6512c3a3ac6e02f4c7ec6363e0\"\u003e\u003ccode\u003ec8d0aa4\u003c/code\u003e\u003c/a\u003e Updated cibuildwheel. Support Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b283bb2b038cef571bfe49b2a76415cf4005ddfc\"\u003e\u003ccode\u003eb283bb2\u003c/code\u003e\u003c/a\u003e Updated version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5268ae7bd178828d6b710125a8089e548ca51b61\"\u003e\u003ccode\u003e5268ae7\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/9398a6da5630aa9af67775e95802d2c5625606cd\"\u003e\u003ccode\u003e9398a6d\u003c/code\u003e\u003c/a\u003e Git issue 614: build_GROUP() does not propagate the match direction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b77694aec629ca66bfe416e5f83561d52bd08ae8\"\u003e\u003ccode\u003eb77694a\u003c/code\u003e\u003c/a\u003e Git issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/8244055e30dbfe4aa96ebff39ad78fabbcdf93a7\"\u003e\u003ccode\u003e8244055\u003c/code\u003e\u003c/a\u003e Git issue 612: count_one() size underflow through the stale required-string c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1c90270fb50c542a24d16c4848fc2b7b951bbd2d\"\u003e\u003ccode\u003e1c90270\u003c/code\u003e\u003c/a\u003e Git issue 611: Heap out-of-bounds write at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1760a20647f1c2ddcc025128407fe6f7edb905a1\"\u003e\u003ccode\u003e1760a20\u003c/code\u003e\u003c/a\u003e Support Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.7.19...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.36.0 to 40.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v40.38.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.38.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v40.37.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.37.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.37.0...v40.38.0\"\u003ev40.38.0 - 2026-09-01\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esi_LK\u003c/code\u003e (Sinhala, Sri Lanka) person provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2430\"\u003e#2430\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/RavinduPabasara\"\u003e\u003ccode\u003e@​RavinduPabasara\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ev40.37.0 - 2026-08-20\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix: generate structurally valid Irish IBANs for \u003ccode\u003een_IE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/CedricConday\"\u003e\u003ccode\u003e@​CedricConday\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/suliuzh\"\u003e\u003ccode\u003e@​suliuzh\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/59a6872a547248bb40cdd0f809089a605c68467f\"\u003e\u003ccode\u003e59a6872\u003c/code\u003e\u003c/a\u003e Bump version: 40.37.0 → 40.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2407c71270aa0fc1b3e7510e1872dc2d232dc238\"\u003e\u003ccode\u003e2407c71\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f6a8427a6481f81d1d45701338acde38c63e75ad\"\u003e\u003ccode\u003ef6a8427\u003c/code\u003e\u003c/a\u003e :lipstick: Format code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/ce50bdef4bdc5f04e25d012566b14faf5fb2ec22\"\u003e\u003ccode\u003ece50bde\u003c/code\u003e\u003c/a\u003e Add step to check for existing issues or PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4ca9116ec2f9c86bc311aadd0110d3f976bb49a8\"\u003e\u003ccode\u003e4ca9116\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esi_LK\u003c/code\u003e (Sinhala, Sri Lanka) person provider (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2430\"\u003e#2430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/c5a00935f1eff78bf0258c8a45fb431747c46b48\"\u003e\u003ccode\u003ec5a0093\u003c/code\u003e\u003c/a\u003e mention pull request template in contributing doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4a464c8d7130e26b4c0e9749b039d10b5614c45e\"\u003e\u003ccode\u003e4a464c8\u003c/code\u003e\u003c/a\u003e Bump version: 40.36.0 → 40.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f33e820a5237384c43718f2ec0bf60d82014db12\"\u003e\u003ccode\u003ef33e820\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/74efb07c529e826c3aa12508b204b80b180eba1f\"\u003e\u003ccode\u003e74efb07\u003c/code\u003e\u003c/a\u003e fix(en_IE): generate structurally valid Irish IBANs (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d80d125d5c20d0572a26d5d617dbad647beb9343\"\u003e\u003ccode\u003ed80d125\u003c/code\u003e\u003c/a\u003e add Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/releases\"\u003epytest-benchmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e: instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/318\"\u003eionelmc/pytest-benchmark#318\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded compare \u003ccode\u003e--between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/302\"\u003eionelmc/pytest-benchmark#302\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/304\"\u003eionelmc/pytest-benchmark#304\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/306\"\u003eionelmc/pytest-benchmark#306\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/319\"\u003eionelmc/pytest-benchmark#319\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected. Contributed by xlyyddy in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/317\"\u003eionelmc/pytest-benchmark#317\u003c/a\u003e (fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003eionelmc/pytest-benchmark#65\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003eargparse.FileType\u003c/code\u003e. Contributed by Sophia Castellarin in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/310\"\u003eionelmc/pytest-benchmark#310\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos. Contributed by Daniel Holth and Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/297\"\u003eionelmc/pytest-benchmark#297\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/299\"\u003eionelmc/pytest-benchmark#299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code. Contributed by Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/300\"\u003eionelmc/pytest-benchmark#300\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/301\"\u003eionelmc/pytest-benchmark#301\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 (2026-08-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e:\ninstead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction.\nContributed by Aarni Koskela in \u003ccode\u003e[#318](https://github.com/ionelmc/pytest-benchmark/issues/318) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/318\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompare --between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e.\nContributed by Aarni Koskela in \u003ccode\u003e[#302](https://github.com/ionelmc/pytest-benchmark/issues/302) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/302\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking.\nContributed by Aarni Koskela in\n\u003ccode\u003e[#304](https://github.com/ionelmc/pytest-benchmark/issues/304) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/304\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#306](https://github.com/ionelmc/pytest-benchmark/issues/306) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/306\u0026gt;\u003c/code\u003e\u003c/em\u003e and\n\u003ccode\u003e[#319](https://github.com/ionelmc/pytest-benchmark/issues/319) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/319\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected.\nContributed by xlyyddy in \u003ccode\u003e[#317](https://github.com/ionelmc/pytest-benchmark/issues/317) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/317\u0026gt;\u003c/code\u003e_\n(fixes \u003ccode\u003e[#65](https://github.com/ionelmc/pytest-benchmark/issues/65) \u0026lt;https://github.com/ionelmc/pytest-benchmark/issues/65\u0026gt;\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated argparse.FileType.\nContributed by Sophia Castellarin in \u003ccode\u003e[#310](https://github.com/ionelmc/pytest-benchmark/issues/310) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/310\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos.\nContributed by Daniel Holth and Hugo van Kemenade in\n\u003ccode\u003e[#297](https://github.com/ionelmc/pytest-benchmark/issues/297) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/297\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#299](https://github.com/ionelmc/pytest-benchmark/issues/299) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/299\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code.\nContributed by Hugo van Kemenade in\n\u003ccode\u003e[#300](https://github.com/ionelmc/pytest-benchmark/issues/300) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/300\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#301](https://github.com/ionelmc/pytest-benchmark/issues/301) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/301\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/commit/07d519672687402e6c3fac1a543fbefd810d1e5b\"\u003e\u003ccode\u003e07d5196\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.3 → 5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/accf7331e22c0ede38ffa72081c38f3469e0c9b5\"\u003e\u003ccode\u003eaccf733\u003c/code\u003e\u003c/a\u003e Add some details on \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/304\"\u003e#304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/417dd9fa275e8b9d62c469e676cdb7546d2c4b8f\"\u003e\u003ccode\u003e417dd9f\u003c/code\u003e\u003c/a\u003e Really update the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/898acb34430c99ad877e94c52c8b90256a3bb4a8\"\u003e\u003ccode\u003e898acb3\u003c/code\u003e\u003c/a\u003e Update changelog and plan release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9cc7ef0bb1ad3785a46834b24660562dd48e4a0b\"\u003e\u003ccode\u003e9cc7ef0\u003c/code\u003e\u003c/a\u003e Defer xdist warning until benchmark collection (\u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003e#65\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/ef485506f04d5510831fdbdee5be7014f4726a93\"\u003e\u003ccode\u003eef48550\u003c/code\u003e\u003c/a\u003e Some minor skel updates: test only against latest pytest; bump linting/format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/88eaea957d1685f604a5835555d2ce5dbec1ac29\"\u003e\u003ccode\u003e88eaea9\u003c/code\u003e\u003c/a\u003e Add --benchmark-precision for adaptive rounds (opt-in)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/3b83d127127de74d9f71a3a78e5f661fac044950\"\u003e\u003ccode\u003e3b83d12\u003c/code\u003e\u003c/a\u003e Update and freeze GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/4b7662fbfba046eb92dd183e005e8708ac81e6cd\"\u003e\u003ccode\u003e4b7662f\u003c/code\u003e\u003c/a\u003e Fix ruff complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/26b011361d2c41f529a73833e1be8d3a565600fa\"\u003e\u003ccode\u003e26b0113\u003c/code\u003e\u003c/a\u003e Remove Taplo lint (unmaintained)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-rerunfailures` from 16.6 to 16.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst\"\u003epytest-rerunfailures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.6.1 (2026-09-03)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\n+++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure teardown reports are passed to \u003ccode\u003epytest_runtest_logreport\u003c/code\u003e for rerun\nattempts. (\u003ccode\u003e[#237](https://github.com/pytest-dev/pytest-rerunfailures/issues/237) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/237\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePrevent superseded built-in subtest failures from remaining in the final test\nresult when rerunning tests with pytest-xdist. (\u003ccode\u003e[#350](https://github.com/pytest-dev/pytest-rerunfailures/issues/350) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/350\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eRestore module, class, and session scoped fixture teardown when a \u003ccode\u003eflaky\u003c/code\u003e\nmarker condition is falsy. (\u003ccode\u003e[#351](https://github.com/pytest-dev/pytest-rerunfailures/issues/351) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eRestore module, class, and session scoped fixture teardown when an error\nraised during teardown rules out a re-run. (\u003ccode\u003e[#356](https://github.com/pytest-dev/pytest-rerunfailures/issues/356) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/356\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eKeep module, class, and session scoped fixtures alive across re-runs of a\ntest whose call phase failed through subtests only. (\u003ccode\u003e[#357](https://github.com/pytest-dev/pytest-rerunfailures/issues/357) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/357\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAuthenticate xdist StatusDB connections with a per-session token. (\u003ccode\u003e[#358](https://github.com/pytest-dev/pytest-rerunfailures/issues/358) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/358\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eEnsure negative rerun counts do not skip the initial test execution. (\u003ccode\u003e[#359](https://github.com/pytest-dev/pytest-rerunfailures/issues/359) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/359\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003eConfig.getvalue()\u003c/code\u003e calls with \u003ccode\u003eConfig.getoption()\u003c/code\u003e.\n(\u003ccode\u003e[#345](https://github.com/pytest-dev/pytest-rerunfailures/issues/345) \u0026lt;https://github.com/pytest-dev/pytest-rerunfailures/issues/345\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/dad07a7f360e96c0cbbc4301e36cdc439eb9a36b\"\u003e\u003ccode\u003edad07a7\u003c/code\u003e\u003c/a\u003e Preparing release 16.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/968fb6c1d3982ea35f041ecb62024e79016324bb\"\u003e\u003ccode\u003e968fb6c\u003c/code\u003e\u003c/a\u003e Prevent negative reruns from skipping initial execution (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/367df9044cbcf3bbf153269bdab995e1f9eb113c\"\u003e\u003ccode\u003e367df90\u003c/code\u003e\u003c/a\u003e Keep higher-scoped fixtures alive across re-runs of failed subtests (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/69ac0a7e66f1f55c1e94a2f237e2659250795ef7\"\u003e\u003ccode\u003e69ac0a7\u003c/code\u003e\u003c/a\u003e Authenticate xdist StatusDB connections (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/20decd37b22736b1a92ecb7a6ed598e7fd70cff1\"\u003e\u003ccode\u003e20decd3\u003c/code\u003e\u003c/a\u003e Restore higher-scoped teardown when a teardown error rules out a re-run (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/84af73d63c1ac3eeeeba73a5e3ac91a44078c7bb\"\u003e\u003ccode\u003e84af73d\u003c/code\u003e\u003c/a\u003e Fix subtest rerun reporting with xdist (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/d784cdda0b946c8788939255b6b72df67da82a19\"\u003e\u003ccode\u003ed784cdd\u003c/code\u003e\u003c/a\u003e Test with pytest-xdist on CI (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/9f85e063dac5387cb0b17ffcb8aadeca545292a8\"\u003e\u003ccode\u003e9f85e06\u003c/code\u003e\u003c/a\u003e Restore higher-scoped teardown when a flaky condition is falsy (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/eab650fb2a2665d61539aafda81ae549440c2834\"\u003e\u003ccode\u003eeab650f\u003c/code\u003e\u003c/a\u003e Test rerun-except for setup errors (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/commit/0b0843a83fb7e79c37e626092a77c5f7cd49f4df\"\u003e\u003ccode\u003e0b0843a\u003c/code\u003e\u003c/a\u003e Fix only_rerun marker precedence test (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6...16.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.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.16.3 to 0.16.6\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.16.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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.16.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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/22f65a2ab5052990503985c7c794de37598d531e\"\u003e\u003ccode\u003e22f65a2\u003c/code\u003e\u003c/a\u003e Bump 0.16.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28280\"\u003e#28280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd\"\u003e\u003ccode\u003e7cc9f1e\u003c/code\u003e\u003c/a\u003e [ty] Document \u003ccode\u003eCallableTypeKind\u003c/code\u003e variants (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28277\"\u003e#28277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078\"\u003e\u003ccode\u003e056ce07\u003c/code\u003e\u003c/a\u003e Add UV_LOCKED to all workflows (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28261\"\u003e#28261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6\"\u003e\u003ccode\u003e6d6e35d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a\"\u003e\u003ccode\u003e80b4891\u003c/code\u003e\u003c/a\u003e [ty] Temporarily disable tuple types in property tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28275\"\u003e#28275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0\"\u003e\u003ccode\u003e3f7a54d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d\"\u003e\u003ccode\u003e35656cf\u003c/code\u003e\u003c/a\u003e [ty] Preserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf\"\u003e\u003ccode\u003ed2626c8\u003c/code\u003e\u003c/a\u003e [ty] Reject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c\"\u003e\u003ccode\u003eee6a6d1\u003c/code\u003e\u003c/a\u003e [ty] Support ParamSpecs in \u003ccode\u003eConstraintSet\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28028\"\u003e#28028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d\"\u003e\u003ccode\u003e7f6a170\u003c/code\u003e\u003c/a\u003e [ty] Move bound APIs to constraint owners (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28094\"\u003e#28094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.3...0.16.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinxcontrib-mermaid` from 2.1.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/blob/master/CHANGELOG.md\"\u003esphinxcontrib-mermaid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.1 (July 19, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve source metadata on generated Mermaid caption nodes so Sphinx extracts them into gettext catalogs and applies normal caption translations\u003c/li\u003e\n\u003cli\u003ePass the existing mermaid image class through the HTML visitor so PNG output can be targeted consistently with CSS\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/mgaitan/sphinxcontrib-mermaid/commit/6e51230b4781f578efdc54af5bae0952e1627c53\"\u003e\u003ccode\u003e6e51230\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/262\"\u003e#262\u003c/a\u003e from mgaitan/tkp/211\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/7c61bb6ee312d0233bb422c082ed7355013a7925\"\u003e\u003ccode\u003e7c61bb6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/264\"\u003e#264\u003c/a\u003e from mgaitan/dependabot/github_actions/github-actions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/77bd5937e93169925187c74e85fe5658fe27f5e6\"\u003e\u003ccode\u003e77bd593\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dependabot/github_actions/github-actions-a934d7c76e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/d1b8ca8baee3464cd2d626d22fb8860811100fc9\"\u003e\u003ccode\u003ed1b8ca8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/265\"\u003e#265\u003c/a\u003e from mgaitan/tkp/ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/4ad2812dcb7b65229df1438974bed2b8f45eb968\"\u003e\u003ccode\u003e4ad2812\u003c/code\u003e\u003c/a\u003e Fixes for ruff 16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/056261dbfbc38c3405a22418aec0205bde1b09ea\"\u003e\u003ccode\u003e056261d\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/015f47a3ea392d324a0a99e82727a31f8bc7ecb7\"\u003e\u003ccode\u003e015f47a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/263\"\u003e#263\u003c/a\u003e from mgaitan/dependabot/github_actions/github-actions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/a8f8b59780c988e7a4a420543b6d764e0167e8a2\"\u003e\u003ccode\u003ea8f8b59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/e81147ddb1c7b5a7888ed74728c887f226d440ef\"\u003e\u003ccode\u003ee81147d\u003c/code\u003e\u003c/a\u003e Bump to 2.1.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/commit/e26789082fa6e95552957af5fe64c4cf327372be\"\u003e\u003ccode\u003ee267890\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mgaitan/sphinxcontrib-mermaid/issues/261\"\u003e#261\u003c/a\u003e from timkpaine/tkp/translate-mermaid-captions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mgaitan/sphinxcontrib-mermaid/compare/2.1.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/1002","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/1002","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1002/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":"/backend","pr_created_at":"2026-09-14T22:58:02.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5455445056","node_id":"PR_kwDOSdqTH88AAAABDhmZbg","number":329,"state":"open","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":11,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T22:58:02.000Z","updated_at":"2026-09-14T22:58:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/SaifulHaqueNiloy/supremeai/pull/329","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaifulHaqueNiloy%2Fsupremeai/issues/329","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/329/packages"}},{"old_version":"5.5.2","new_version":"7.1.8","update_type":"major","path":null,"pr_created_at":"2026-09-14T18:47:04.000Z","version_change":"5.5.2 → 7.1.8","issue":{"uuid":"5453252554","node_id":"PR_kwDOPjFrIs8AAAABDf1RmA","number":5059,"state":"open","title":"chore(deps): bump cachetools from 5.5.2 to 7.1.8","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T18:47:04.000Z","updated_at":"2026-09-14T18:55:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"5.5.2","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 5.5.2 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v7.1.8\"\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=cachetools\u0026package-manager=uv\u0026previous-version=5.5.2\u0026new-version=7.1.8)](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/OpenHands/software-agent-sdk/pull/5059","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenHands%2Fsoftware-agent-sdk/issues/5059","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5059/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-14T16:30:32.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5451958211","node_id":"PR_kwDOT7cHYc8AAAABDeyR7Q","number":7,"state":"closed","title":"deps: bump the python-dependencies group with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T16:30:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-14T16:30:32.000Z","updated_at":"2026-09-14T16:30:53.000Z","time_to_close":12,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"python-dependencies","update_count":26,"packages":[{"name":"streamlit","old_version":"1.62.0","new_version":"1.63.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"llama-index-llms-ollama","old_version":"0.10.1","new_version":"0.11.0"},{"name":"llama-index-embeddings-huggingface","old_version":"0.7.0","new_version":"0.8.0"},{"name":"llama-index-readers-web","old_version":"0.6.0","new_version":"0.7.0"},{"name":"llama-index-readers-file","old_version":"0.6.0","new_version":"0.7.0"},{"name":"torch","old_version":"2.13.0","new_version":"2.14.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.28.0","new_version":"0.29.0","repository_url":"https://github.com/pytorch/vision"},{"name":"anyio","old_version":"4.14.2","new_version":"4.15.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cuda-pathfinder","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"firecrawl-py","old_version":"4.40.0","new_version":"4.41.0","repository_url":"https://github.com/firecrawl/firecrawl"},{"name":"gitpython","old_version":"3.1.61","new_version":"3.1.62","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"griffecli","old_version":"2.2.0","new_version":"2.3.0"},{"name":"griffelib","old_version":"2.2.0","new_version":"2.3.0"},{"name":"huggingface-hub","old_version":"1.29.0","new_version":"1.30.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"llama-index-llms-openai","old_version":"0.8.0","new_version":"0.8.1"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"numpy","old_version":"2.5.2","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"openai","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/openai/openai-python"},{"name":"platformdirs","old_version":"4.11.5","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.16.2","new_version":"6.17.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"tokenizers","old_version":"0.23.1","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.62.0` | `1.63.0` |\n| llama-index-llms-ollama | `0.10.1` | `0.11.0` |\n| llama-index-embeddings-huggingface | `0.7.0` | `0.8.0` |\n| llama-index-readers-web | `0.6.0` | `0.7.0` |\n| llama-index-readers-file | `0.6.0` | `0.7.0` |\n| [torch](https://github.com/pytorch/pytorch) | `2.13.0` | `2.14.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.28.0` | `0.29.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.8.0` | `1.8.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.5` |\n| [firecrawl-py](https://github.com/firecrawl/firecrawl) | `4.40.0` | `4.41.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.61` | `3.1.62` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.2.0` | `2.3.0` |\n| griffecli | `2.2.0` | `2.3.0` |\n| griffelib | `2.2.0` | `2.3.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.29.0` | `1.30.0` |\n| llama-index-llms-openai | `0.8.0` | `0.8.1` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [numpy](https://github.com/numpy/numpy) | `2.5.2` | `2.5.3` |\n| [openai](https://github.com/openai/openai-python) | `3.6.0` | `3.8.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.5` | `4.11.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.16.2` | `6.17.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.3` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.23.1` | `0.23.2` |\n\nUpdates `streamlit` from 1.62.0 to 1.63.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/streamlit/streamlit/releases\"\u003estreamlit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.63.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003ewrap\u003c/code\u003e to \u003ccode\u003est.pills\u003c/code\u003e and \u003ccode\u003est.segmented_control\u003c/code\u003e by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16369\"\u003estreamlit/streamlit#16369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.slider by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/14828\"\u003estreamlit/streamlit#14828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Auto no-wrap for direct column widgets by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16578\"\u003estreamlit/streamlit#16578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003etype=\u0026quot;step\u0026quot;\u003c/code\u003e to \u003ccode\u003est.expander\u003c/code\u003e and \u003ccode\u003est.status\u003c/code\u003e by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16558\"\u003estreamlit/streamlit#16558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Make st.rerun() work in widget callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16158\"\u003estreamlit/streamlit#16158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add \u003ccode\u003eon_change=\u0026quot;ignore\u0026quot;\u003c/code\u003e mode to st.text_input by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16605\"\u003estreamlit/streamlit#16605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Configurable cache background-refresh TTL multiplier by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16599\"\u003estreamlit/streamlit#16599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add select_all and first-row Enter to st.multiselect by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16673\"\u003estreamlit/streamlit#16673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add wrap parameter to text commands by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16617\"\u003estreamlit/streamlit#16617\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add icon parameter to title, header, subheader by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16418\"\u003estreamlit/streamlit#16418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[feature] Add event-scoped fragment reruns via st.rerun(scope=\u003c!-- raw HTML omitted --\u003e) by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16161\"\u003estreamlit/streamlit#16161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Skip syntax highlighting for very long code blocks (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/11996\"\u003e#11996\u003c/a\u003e) by \u003ca href=\"https://github.com/sfc-gh-dbyttow\"\u003e\u003ccode\u003e@​sfc-gh-dbyttow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16567\"\u003estreamlit/streamlit#16567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep menu and JSON overlays clickable in \u003ccode\u003est.dialog\u003c/code\u003e by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16583\"\u003estreamlit/streamlit#16583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Clamp date/datetime input default bounds at date.min/max by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16582\"\u003estreamlit/streamlit#16582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Match skills-nudge button labels to the card's text size by \u003ca href=\"https://github.com/sfc-gh-nbellante\"\u003e\u003ccode\u003e@​sfc-gh-nbellante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16482\"\u003estreamlit/streamlit#16482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Stop Cmd/Ctrl+C from opening clear-cache dialog by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16615\"\u003estreamlit/streamlit#16615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent markdown lists from overflowing narrow containers by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16632\"\u003estreamlit/streamlit#16632\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Echo guest-to-host messages to in-iframe hosts by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16647\"\u003estreamlit/streamlit#16647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Restore Ctrl/Cmd+A in st.multiselect filter by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16650\"\u003estreamlit/streamlit#16650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Correct public widget overload typings by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16633\"\u003estreamlit/streamlit#16633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Error message bullets and uppercase-hex object reprs by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16683\"\u003estreamlit/streamlit#16683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Show the correct year in the date picker header by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16706\"\u003estreamlit/streamlit#16706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Harden AppTest for keys, disabled widgets, and navigation by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16711\"\u003estreamlit/streamlit#16711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Log all user-facing warnings to the console by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16717\"\u003estreamlit/streamlit#16717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Prevent upload hang when middleware reads the body first by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16709\"\u003estreamlit/streamlit#16709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep a time given before a date in st.datetime_input by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16664\"\u003estreamlit/streamlit#16664\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release v1.62.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16579\"\u003estreamlit/streamlit#16579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Recommend st.table for key-value lists by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16576\"\u003estreamlit/streamlit#16576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify UploadedFile public API by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16604\"\u003estreamlit/streamlit#16604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Keep spinner moving and expose its label by \u003ca href=\"https://github.com/mayagbarnes\"\u003e\u003ccode\u003e@​mayagbarnes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16620\"\u003estreamlit/streamlit#16620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Add typed API exceptions for telemetry by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16637\"\u003estreamlit/streamlit#16637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Add missing-required parameter error by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16508\"\u003estreamlit/streamlit#16508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Recommend icons for navigation pages by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16658\"\u003estreamlit/streamlit#16658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Adopt shared parameter exception types by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16668\"\u003estreamlit/streamlit#16668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Finish public API exception cleanup by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16656\"\u003estreamlit/streamlit#16656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Adopt specific Streamlit API errors by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16690\"\u003estreamlit/streamlit#16690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Split range errors into min/max vs interval by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16701\"\u003estreamlit/streamlit#16701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Improve \u003ccode\u003est.context\u003c/code\u003e and \u003ccode\u003est.user\u003c/code\u003e typing by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16710\"\u003estreamlit/streamlit#16710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[refactor] Migrate leftover st.* exception types by \u003ca href=\"https://github.com/lukasmasuch\"\u003e\u003ccode\u003e@​lukasmasuch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16707\"\u003estreamlit/streamlit#16707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Document that st.rerun() works in widget callbacks by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16751\"\u003estreamlit/streamlit#16751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Update agent skill for keyed fragment reruns by \u003ca href=\"https://github.com/sfc-gh-lwilby-1\"\u003e\u003ccode\u003e@​sfc-gh-lwilby-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/streamlit/streamlit/pull/16750\"\u003estreamlit/streamlit#16750\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/streamlit/streamlit/commit/cb9aba9ff4d89c496ed15fd1aa7ee1fef19e0c24\"\u003e\u003ccode\u003ecb9aba9\u003c/code\u003e\u003c/a\u003e Up version to 1.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/158822cc3c70ba2ea6460f45cfd68d7e967efafa\"\u003e\u003ccode\u003e158822c\u003c/code\u003e\u003c/a\u003e [fix] Keep a time given before a date in st.datetime_input (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16664\"\u003e#16664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a0394068b6230c821ae93c5790d688f83da69154\"\u003e\u003ccode\u003ea039406\u003c/code\u003e\u003c/a\u003e [fix] Prevent upload hang when middleware reads the body first (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16709\"\u003e#16709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/913f77c7ceedcde6b2433e1640db54d1d64cdd23\"\u003e\u003ccode\u003e913f77c\u003c/code\u003e\u003c/a\u003e [docs] Update agent skill for keyed fragment reruns (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16750\"\u003e#16750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/1614093b2f14f27a1f5803eb981ba2271b96db2e\"\u003e\u003ccode\u003e1614093\u003c/code\u003e\u003c/a\u003e [docs] Document that st.rerun() works in widget callbacks (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16751\"\u003e#16751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/d330f5810cd31563972e9c6d4c1ed33e1b46ea2f\"\u003e\u003ccode\u003ed330f58\u003c/code\u003e\u003c/a\u003e [fix] Log all user-facing warnings to the console (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16717\"\u003e#16717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/a1bdd67b4eb197cffee50d20cecec03989a3922b\"\u003e\u003ccode\u003ea1bdd67\u003c/code\u003e\u003c/a\u003e [feature] Add event-scoped fragment reruns via st.rerun(scope=\u0026lt;key\u0026gt;) (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16161\"\u003e#16161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/da485ea43af37f47af10fa98a08b672599fa7b4a\"\u003e\u003ccode\u003eda485ea\u003c/code\u003e\u003c/a\u003e [chore] Fix click, uvloop, knip, and teardown test warnings (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16735\"\u003e#16735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/c714cfebab1e574e3017e15eb22e18e9cbe5d3dc\"\u003e\u003ccode\u003ec714cfe\u003c/code\u003e\u003c/a\u003e [chore] Add papercut auto-select and final AI review (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16731\"\u003e#16731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/streamlit/streamlit/commit/976187ba59deb8002bf8c6045e9a9cb41f43128c\"\u003e\u003ccode\u003e976187b\u003c/code\u003e\u003c/a\u003e [chore] Pin patched frontend security dependencies (\u003ca href=\"https://redirect.github.com/streamlit/streamlit/issues/16748\"\u003e#16748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/streamlit/streamlit/compare/1.62.0...1.63.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `llama-index-llms-ollama` from 0.10.1 to 0.11.0\n\nUpdates `llama-index-embeddings-huggingface` from 0.7.0 to 0.8.0\n\nUpdates `llama-index-readers-web` from 0.6.0 to 0.7.0\n\nUpdates `llama-index-readers-file` from 0.6.0 to 0.7.0\n\nUpdates `torch` from 2.13.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.14.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the release blogpost. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003etorch.nn.LinearCrossEntropyOptions\u003c/code\u003e no longer accepts \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e; use \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/188283\"\u003e#188283\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e\u0026quot;balanced\u0026quot;\u003c/code\u003e policy was removed because \u003ccode\u003e\u0026quot;compact\u0026quot;\u003c/code\u003e provides the same weight-gradient accumulation precision with lower memory use on CUDA, already uses the equivalent scratch layout for mixed-precision inputs on other devices, and was never selected by \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e. Constructing the options with \u003ccode\u003eacc_policy=\u0026quot;balanced\u0026quot;\u003c/code\u003e now raises \u003ccode\u003eValueError: invalid acc_policy: 'balanced'; expected one of 'auto', 'accurate', 'compact'\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eoptions = torch.nn.LinearCrossEntropyOptions(acc_policy=\u0026quot;balanced\u0026quot;)\r\nloss = torch.nn.functional.linear_cross_entropy(\r\n    input, linear_weight, target, options=options\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eoptions = torch.nn.LinearCrossEntropyOptions(acc_policy=\u0026quot;compact\u0026quot;)\r\nloss = torch.nn.functional.linear_cross_entropy(\r\n\u003c/code\u003e\u003c/pre\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/pytorch/pytorch/commit/2b3ec34829036a65cd9d1398ea72a0167dc37470\"\u003e\u003ccode\u003e2b3ec34\u003c/code\u003e\u003c/a\u003e [release/2.14] Import SDPAParams in test_transformers to fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194970\"\u003e#194970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/08187d9e0fba026dc8217405802ab5381dc88d90\"\u003e\u003ccode\u003e08187d9\u003c/code\u003e\u003c/a\u003e [cuDNN] Add guards for cuDNN SDPA decode (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194963\"\u003e#194963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/8ceea97051dec8f6bee23d24bd7704dcb6843ade\"\u003e\u003ccode\u003e8ceea97\u003c/code\u003e\u003c/a\u003e Pin cython \u0026lt; 3.3.0 for the Windows Triton wheel build (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194931\"\u003e#194931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99ecebc63014f3454331b5a0914871daa063b512\"\u003e\u003ccode\u003e99ecebc\u003c/code\u003e\u003c/a\u003e [Cherry-pick][release/2.14] [inductor] Fix loop-local load CSE lifetime (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194\"\u003e#194\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/ec283a75077fa3ee24a9cda2c58d2b24d95ca98c\"\u003e\u003ccode\u003eec283a7\u003c/code\u003e\u003c/a\u003e Bump the Python 3.15 numpy pin to 2.5.2 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194821\"\u003e#194821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/65890f364dd059ca97b9a37ada974eba8d8be772\"\u003e\u003ccode\u003e65890f3\u003c/code\u003e\u003c/a\u003e Fix docker-release validate job to use the channel matching the pushed image ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/168238882db0ad985f8904489604ff4955449fd2\"\u003e\u003ccode\u003e1682388\u003c/code\u003e\u003c/a\u003e Fix macOS py3.15 wheel builds: pin Cython \u0026lt; 3.3.0 and bump the cp315 numpy pi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/972441861b1aee44141b60c98c7875e7e4fe23ca\"\u003e\u003ccode\u003e9724418\u003c/code\u003e\u003c/a\u003e Fix Windows py3.15 builds: constrain Cython \u0026lt; 3.3.0 and bump the cp315 numpy ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f1b755434c258b61307de00f680bb2dc9c50d592\"\u003e\u003ccode\u003ef1b7554\u003c/code\u003e\u003c/a\u003e [MPS] Fix pin_memory() recycling buffers still in use by the GPU (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194662\"\u003e#194662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/9f205f7b38c08544132b001948ce9109c577c6ed\"\u003e\u003ccode\u003e9f205f7\u003c/code\u003e\u003c/a\u003e [MPS] fail loudly on large reductions (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/194661\"\u003e#194661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.13.0...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torchvision` from 0.28.0 to 0.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/vision/releases\"\u003etorchvision's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTorchVision 0.29: ABI stability!\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.pytorch.org/vision/0.29/\"\u003eTorchVision 0.29\u003c/a\u003e is out! It comes with two major changes: \u003cstrong\u003eABI stability\u003c/strong\u003e, and \u003cstrong\u003edeprecation of the image decoders and encoders\u003c/strong\u003e (now in \u003ca href=\"https://meta-pytorch.org/torchcodec/0.16/generated_examples/migration/torchvision_migration.html\"\u003eTorchCodec\u003c/a\u003e)!\u003c/p\u003e\n\u003ch2\u003eABI Stability with torch 2.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eTorchVision is now ABI stable w.r.t. \u003ccode\u003etorch 2.14\u003c/code\u003e\u003c/strong\u003e! This means that \u003ccode\u003etorchvision 0.29\u003c/code\u003e will be compatible with future versions of \u003ccode\u003etorch\u003c/code\u003e: \u003ccode\u003e2.15\u003c/code\u003e, \u003ccode\u003e2.16\u003c/code\u003e, etc. You won’t need to install a new version of TorchVision when you upgrade torch.\u003c/p\u003e\n\u003cp\u003eAs a result, we might stop releasing TorchVision in sync with pytorch. But \u003cstrong\u003eTorchVision is still actively maintained and developed\u003c/strong\u003e: we’ll still be pushing releases, just not with the same cadence.\u003c/p\u003e\n\u003cp\u003eThanks to Adrian Abeyta \u003ca href=\"https://github.com/adabeyta\"\u003e\u003ccode\u003e@​adabeyta\u003c/code\u003e\u003c/a\u003e for the fantastic porting effort!\u003c/p\u003e\n\u003cp\u003ePRs: \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9524\"\u003e#9524\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9597\"\u003e#9597\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9598\"\u003e#9598\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9605\"\u003e#9605\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9612\"\u003e#9612\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9610\"\u003e#9610\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9614\"\u003e#9614\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9584\"\u003e#9584\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9617\"\u003e#9617\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9618\"\u003e#9618\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9619\"\u003e#9619\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9620\"\u003e#9620\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9582\"\u003e#9582\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9573\"\u003e#9573\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9625\"\u003e#9625\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9623\"\u003e#9623\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9626\"\u003e#9626\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9583\"\u003e#9583\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9633\"\u003e#9633\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9572\"\u003e#9572\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9549\"\u003e#9549\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9533\"\u003e#9533\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9535\"\u003e#9535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9539\"\u003e#9539\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9543\"\u003e#9543\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9550\"\u003e#9550\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9552\"\u003e#9552\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9555\"\u003e#9555\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9557\"\u003e#9557\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9558\"\u003e#9558\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9554\"\u003e#9554\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImage decoders and encoders are deprecated. Use TorchCodec!\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe image decoders and encoders in \u003ccode\u003etorchvision.io\u003c/code\u003e are now deprecated, and they will be removed in a future release\u003c/strong\u003e. They are now available in \u003ca href=\"https://github.com/meta-pytorch/torchcodec/releases/tag/v0.16.0\"\u003etorchcodec \u0026gt;= 0.16\u003c/a\u003e, where they are significantly more capable. You’ll just need to \u003ccode\u003epip install torchcodec\u003c/code\u003e, and you can refer to \u003ca href=\"https://meta-pytorch.org/torchcodec/0.16/generated_examples/migration/torchvision_migration.html\"\u003ethis migration guide\u003c/a\u003e for migrating your code (most APIs for decoding are the same).\u003c/p\u003e\n\u003cp\u003eThis finalizes a clear separation of concerns for the three media-processing libraries of PyTorch: \u003ccode\u003etorchcodec\u003c/code\u003e is for decoding and encoding all media (images, videos, and audio), while \u003ccode\u003etorchvision\u003c/code\u003e and \u003ccode\u003etorchaudio\u003c/code\u003e focus on the transforms.\u003c/p\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cp\u003e[ops] Fix for deformable convolution kernels always running on default stream (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9522\"\u003e#9522\u003c/a\u003e)\n[ops, MPS] Fix gradient overaccumulation in ROI ops (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9563\"\u003e#9563\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9510\"\u003e#9510\u003c/a\u003e)\n[transforms] Fix JPEG transform for non-contiguous batches (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9615\"\u003e#9615\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003e🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:\u003c/p\u003e\n\u003cp\u003eAdrian Abeyta, Andrey Talman, Dmitry Nikolaev, Irakli Salia, Jeff Daily , Kasra  Ghodsi, Nicolas Hug,  Nikita Shulga, Simon Byrne, Yutao Xu, Zhewen\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/pytorch/vision/commit/fc73f5a8567734ffa4c988b24d5432f0d3005974\"\u003e\u003ccode\u003efc73f5a\u003c/code\u003e\u003c/a\u003e Merge branch 'release/0.29' of github.com:pytorch/vision into release/0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/f9b26692ed7f8da7b7d756be50f4ce2ec214a4ac\"\u003e\u003ccode\u003ef9b2669\u003c/code\u003e\u003c/a\u003e [Cherry-pick for 0.29] (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9634\"\u003e#9634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/e1b580264441968d3a827803f2eccd130a4d1c55\"\u003e\u003ccode\u003ee1b5802\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Update version.txt for 0.30.0 (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9607\"\u003e#9607\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/2757376cec0343e85b4f22f154a40e9e5e92a3c2\"\u003e\u003ccode\u003e2757376\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin' into release/0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/9e21b8873fb702621db31ef59276e5f436222f7f\"\u003e\u003ccode\u003e9e21b88\u003c/code\u003e\u003c/a\u003e Consolidate CUDA helpers and remove the legacy _C extension in place of Stabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/541c08303e9bbc9524bbd60108775612d3af6112\"\u003e\u003ccode\u003e541c083\u003c/code\u003e\u003c/a\u003e Port deform_conv2d (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9626\"\u003e#9626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/2f411e7fccdafd0290e07d3bb71e30962577bbf4\"\u003e\u003ccode\u003e2f411e7\u003c/code\u003e\u003c/a\u003e Port ps_roi_pool (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9623\"\u003e#9623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/ae0ca92357c49bea33d5b57ac235eb8b58d53d00\"\u003e\u003ccode\u003eae0ca92\u003c/code\u003e\u003c/a\u003e Port ps_roi_align (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9625\"\u003e#9625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/ff1a18ddd7d790d47d12e79695cae1cc91176620\"\u003e\u003ccode\u003eff1a18d\u003c/code\u003e\u003c/a\u003e Port roi_align (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9573\"\u003e#9573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/vision/commit/8af7a682bb5baa8aea2381f78450556399ff58bf\"\u003e\u003ccode\u003e8af7a68\u003c/code\u003e\u003c/a\u003e Port roi_pool (CUDA) to stable ABI. (\u003ca href=\"https://redirect.github.com/pytorch/vision/issues/9582\"\u003e#9582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/vision/compare/v0.28.0...v0.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.14.2 to 4.15.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.15.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented a compatibility fix for supporting direct access of \u003ccode\u003eanyio.*\u003c/code\u003e submodules from the main package even when those submodules were not directly imported first (\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311\"\u003e#1311\u003c/a\u003e \u0026lt;\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E\"\u003eagronholm/anyio#1311\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for the newer keyword-only arguments on \u003ccode\u003eanyio.Path\u003c/code\u003e methods to match the standard library \u003ccode\u003epathlib.Path\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eexists()\u003c/code\u003e (Python 3.12+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_dir()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eis_file()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003eowner()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efollow_symlinks\u003c/code\u003e on \u003ccode\u003egroup()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enewline\u003c/code\u003e on \u003ccode\u003eread_text()\u003c/code\u003e (Python 3.13+)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1286\"\u003e#1286\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1293\"\u003e#1293\u003c/a\u003e; PR by \u003ca href=\"https://github.com/jaideeppyne\"\u003e\u003ccode\u003e@​jaideeppyne\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eamap\u003c/code\u003e, \u003ccode\u003egather\u003c/code\u003e, and \u003ccode\u003eas_completed\u003c/code\u003e utility functions to simplify common patterns (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1173\"\u003e#1173\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003e--anyio-mode\u003c/code\u003e command-line option as an alternative to the \u003ccode\u003eanyio_mode\u003c/code\u003e ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: \u003ccode\u003epytest_asyncio\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1242\"\u003e#1242\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003eanyio.Future\u003c/code\u003e synchronization primitive which behaves similar to \u003ccode\u003easyncio.Future\u003c/code\u003e, allowing tasks to wait for a value (or exception) from another task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1146\"\u003e#1146\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded guidance for managing multiple memory object stream producers and consumers with cloned streams (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/330\"\u003e#330\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nightcityblade\"\u003e\u003ccode\u003e@​nightcityblade\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eStapledObjectStream.send_nowait()\u003c/code\u003e that delegates to the underlying \u003ccode\u003eObjectSendStream\u003c/code\u003e, if it implements it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1241\"\u003e#1241\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003emove_on_at()\u003c/code\u003e and \u003ccode\u003efail_at()\u003c/code\u003e functions to complement \u003ccode\u003emove_on_after()\u003c/code\u003e and \u003ccode\u003efail_after()\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the default name for a task spawned with \u003ccode\u003eTaskGroup.create_task(func())\u003c/code\u003e to match the default task name for the analogous task spawned with \u003ccode\u003eTaskGroup.start_soon(func)\u003c/code\u003e or \u003ccode\u003eTaskGroup.start(func)\u003c/code\u003e in more situations. Previously, the default name of a \u003ccode\u003eTaskGroup.create_task\u003c/code\u003e task never included the module name. (The default name for a task spawned with \u003ccode\u003eTaskGroup.start_soon\u003c/code\u003e or \u003ccode\u003eTaskGroup.start\u003c/code\u003e typically includes the module name.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1234\"\u003e#1234\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the \u003ccode\u003eanyio\u003c/code\u003e and \u003ccode\u003eanyio.abc\u003c/code\u003e modules to lazily (much like \u003ccode\u003e810\u003c/code\u003e) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1169\"\u003e#1169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to \u003ccode\u003estart_blocking_portal()\u003c/code\u003e and \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1224\"\u003e#1224\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eSpooledTemporaryFile.readinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1215\"\u003e#1215\u003c/a\u003e; PR by \u003ca href=\"https://github.com/c-tonneslan\"\u003e\u003ccode\u003e@​c-tonneslan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003efail_after\u003c/code\u003e (and the new \u003ccode\u003efail_at\u003c/code\u003e) allowing for added exception context when raising \u003ccode\u003eTimeoutError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1227\"\u003e#1227\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default \u003ccode\u003eTaskHandle.name\u003c/code\u003e missing part of the task name for tasks started with \u003ccode\u003eTaskGroup.start\u003c/code\u003e on Trio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1231\"\u003e#1231\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.run\u003c/code\u003e leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a \u003ccode\u003eRunVar\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1203\"\u003e#1203\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eanyio.Path.with_stem()\u003c/code\u003e silently producing a wrong path (e.g. \u003ccode\u003ePath(\u0026quot;.txt\u0026quot;)\u003c/code\u003e) instead of raising \u003ccode\u003eValueError\u003c/code\u003e when given an empty stem on a path with a non-empty suffix, unlike \u003ccode\u003epathlib.PurePath.with_stem\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1200\"\u003e#1200\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eUNIXSocketStream.aclose()\u003c/code\u003e raising \u003ccode\u003easyncio.InvalidStateError\u003c/code\u003e when a concurrent receive or send operation had just been cancelled on the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1267\"\u003e#1267\u003c/a\u003e; PR by \u003ca href=\"https://github.com/alloutflo\"\u003e\u003ccode\u003e@​alloutflo\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the pytest plugin importing the deprecated \u003ccode\u003e_pytest.python.CallSpec2\u003c/code\u003e alias, which triggers \u003ccode\u003ePytestRemovedIn10Warning\u003c/code\u003e on \u003ccode\u003epytest\u0026gt;=9.2\u003c/code\u003e and crashes pytest at startup when \u003ccode\u003efilterwarnings = error\u003c/code\u003e is configured (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1271\"\u003e#1271\u003c/a\u003e; PR by \u003ca href=\"https://github.com/matthewfeickert\"\u003e\u003ccode\u003e@​matthewfeickert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed an asyncio worker thread race that could raise \u003ccode\u003eRuntimeError\u003c/code\u003e when the event loop closed between checking its state and scheduling the worker result (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1265\"\u003e#1265\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hansu650\"\u003e\u003ccode\u003e@​hansu650\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens when \u003ccode\u003etotal_tokens\u003c/code\u003e was raised while the limiter was over-subscribed (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1223\"\u003e#1223\u003c/a\u003e; PR by \u003ca href=\"https://github.com/zelinewang\"\u003e\u003ccode\u003e@​zelinewang\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703\"\u003e\u003ccode\u003effcd154\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f\"\u003e\u003ccode\u003e0ecf5ed\u003c/code\u003e\u003c/a\u003e Added a workaround for third party code accessing unimported submodules (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1309\"\u003e#1309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f\"\u003e\u003ccode\u003e9283662\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d\"\u003e\u003ccode\u003ed137692\u003c/code\u003e\u003c/a\u003e Improved the instructions for AI agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265\"\u003e\u003ccode\u003e033fc52\u003c/code\u003e\u003c/a\u003e Shield TemporaryDirectory cleanup from cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1304\"\u003e#1304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc\"\u003e\u003ccode\u003e942e9a6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704\"\u003e\u003ccode\u003eb825c3b\u003c/code\u003e\u003c/a\u003e Fixed pyproject.toml changes not triggering the test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af\"\u003e\u003ccode\u003e9727dc5\u003c/code\u003e\u003c/a\u003e Fixed start inconsistencies between trio and asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8\"\u003e\u003ccode\u003eb05fe6d\u003c/code\u003e\u003c/a\u003e Fixed wrong type in move_on_after (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1297\"\u003e#1297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153\"\u003e\u003ccode\u003e44d0c93\u003c/code\u003e\u003c/a\u003e Fixed asyncio task group coroutine cleanup (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.2...4.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cuda-pathfinder` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/NVIDIA/cuda-python/releases\"\u003ecuda-pathfinder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecuda-pathfinder v1.8.1\u003c/h2\u003e\n\u003ch2\u003eRelease notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nvidia.github.io/cuda-python/cuda-pathfinder/latest/release/1.8.1-notes.html\"\u003ehttps://nvidia.github.io/cuda-python/cuda-pathfinder/latest/release/1.8.1-notes.html\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nvidia.github.io/cuda-python/cuda-pathfinder/1.8.1/\"\u003ehttps://nvidia.github.io/cuda-python/cuda-pathfinder/1.8.1/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePyPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pypi.org/project/cuda-pathfinder/1.8.1/\"\u003ehttps://pypi.org/project/cuda-pathfinder/1.8.1/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eConda\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://anaconda.org/conda-forge/cuda-pathfinder/files?version=1.8.1\"\u003ehttps://anaconda.org/conda-forge/cuda-pathfinder/files?version=1.8.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econda install conda-forge::cuda-pathfinder=1.8.1\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/NVIDIA/cuda-python/commit/e606d084ccfc502a29990f34fbb6ba7a91655c24\"\u003e\u003ccode\u003ee606d08\u003c/code\u003e\u003c/a\u003e pathfinder: also find ptxas in the nvidia/cu13/bin wheel layout (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2741\"\u003e#2741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/9ba91992f4701ef85969e5801ce4b8960bf68f6f\"\u003e\u003ccode\u003e9ba9199\u003c/code\u003e\u003c/a\u003e cuda.core: accept dict for XyzOptions that are extension types (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2634\"\u003e#2634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/e68addec6dbe229b7e48b5d526b9343bda7b4807\"\u003e\u003ccode\u003ee68adde\u003c/code\u003e\u003c/a\u003e fix(cuda.core): let cuda-gdb display source for JIT-compiled kernels (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/ced8747f29268980197db7acfe7c63419295353b\"\u003e\u003ccode\u003eced8747\u003c/code\u003e\u003c/a\u003e fix(bindings): CUDA_PYTHON_DISABLE_MAJOR_VERSION_WARNING=0 must not disable i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/b959d111f5e7e8d4a69aa79e2951dd510c137173\"\u003e\u003ccode\u003eb959d11\u003c/code\u003e\u003c/a\u003e Avoid absolute generated source paths in cuda.core builds (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2720\"\u003e#2720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/02447272ab3ccfba127a1541139548faa296ef00\"\u003e\u003ccode\u003e0244727\u003c/code\u003e\u003c/a\u003e fix(ci): omit Cython .pxd/.pxi so coverage html can run (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2736\"\u003e#2736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/8020a9021b2a306f36ece250e391d99fb46acb5f\"\u003e\u003ccode\u003e8020a90\u003c/code\u003e\u003c/a\u003e ci: make unattended workflow failures team-visible (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2734\"\u003e#2734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/3373ae235c515d91830cf41b8a6b98cb1b97d3c3\"\u003e\u003ccode\u003e3373ae2\u003c/code\u003e\u003c/a\u003e add missing entry (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2739\"\u003e#2739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/bd75451e06e589bfab84d3fb72ecb0acc174c844\"\u003e\u003ccode\u003ebd75451\u003c/code\u003e\u003c/a\u003e fix(ci): use numba-cuda-mlir wheel-only skips (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NVIDIA/cuda-python/commit/33f2b421f1eb16404230deafa7836082b3a28768\"\u003e\u003ccode\u003e33f2b42\u003c/code\u003e\u003c/a\u003e ci: activate dependency-aware package builds and tests (\u003ca href=\"https://redirect.github.com/NVIDIA/cuda-python/issues/2467\"\u003e#2467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/NVIDIA/cuda-python/compare/cuda-pathfinder-v1.8.0...cuda-pathfinder-v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.32.4 to 3.32.5\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.32.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(fork): report where a stalled fork stops 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/filelock/pull/715\"\u003etox-dev/filelock#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: say that mode is read-only in the thread-local section by \u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/716\"\u003etox-dev/filelock#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(lease): clear token after failed acquire by \u003ca href=\"https://github.com/lprnmns\"\u003e\u003ccode\u003e@​lprnmns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/721\"\u003etox-dev/filelock#721\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/lprnmns\"\u003e\u003ccode\u003e@​lprnmns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/721\"\u003etox-dev/filelock#721\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.32.4...3.32.5\"\u003ehttps://github.com/tox-dev/filelock/compare/3.32.4...3.32.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003cp\u003e.. towncrier-draft-entries:: Unreleased\u003c/p\u003e\n\u003cp\u003e.. towncrier release notes start\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.6 (2026-09-08)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoftFileLease\u003c/code\u003e and \u003ccode\u003eAsyncSoftFileLease\u003c/code\u003e now reject a boolean or non-finite \u003ccode\u003elease_duration\u003c/code\u003e, which used to\npublish an owner record their own \u003ccode\u003eowner\u003c/code\u003e property reads back as malformed. :pr:\u003ccode\u003e723\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite heartbeat, stale, and polling intervals in \u003ccode\u003eSoftReadWriteLock\u003c/code\u003e and \u003ccode\u003eAsyncSoftReadWriteLock\u003c/code\u003e,\nincluding cached singleton construction and overflow in the default stale threshold. :pr:\u003ccode\u003e724\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHonor acquisition timeouts and \u003ccode\u003eblocking=False\u003c/code\u003e during \u003ccode\u003eSoftReadWriteLock\u003c/code\u003e state-mutex contention, including\nfailed writer cleanup. Cross-host recovery of an abandoned \u003ccode\u003e.state\u003c/code\u003e marker remains unsupported. :pr:\u003ccode\u003e726\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow acquiring existing lock files that grant write access through group permissions or an ACL even when their\nowner-write mode bit is unset. :pr:\u003ccode\u003e728\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePreserve exception notes and custom attributes when copying or pickling \u003ccode\u003eTimeout\u003c/code\u003e and \u003ccode\u003eSoftFileLockProtocolError\u003c/code\u003e. :pr:\u003ccode\u003e729\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.5 (2026-08-31)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoftFileLease.token\u003c/code\u003e and \u003ccode\u003eAsyncSoftFileLease.token\u003c/code\u003e now read \u003ccode\u003eNone\u003c/code\u003e after a failed acquisition, so a contender\nturned away by a live holder no longer reports a token for a claim it never published. :pr:\u003ccode\u003e721\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocument that \u003ccode\u003emode\u003c/code\u003e has no setter: unlike \u003ccode\u003epoll_interval\u003c/code\u003e, \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eblocking\u003c/code\u003e and \u003ccode\u003elifetime\u003c/code\u003e, it is fixed at construction and \u003ccode\u003elock.mode = ...\u003c/code\u003e raises \u003ccode\u003eAttributeError\u003c/code\u003e. :pr:\u003ccode\u003e716\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.4 (2026-08-23)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eStrictSoftFileLock\u003c/code\u003e always retries a claim read whose first attempt reports the claim as pending, so a first read\nthat itself outlasts the retry grace no longer fails closed on a claim it could have read. :pr:\u003ccode\u003e705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsFileLock\u003c/code\u003e waits out a transient \u003ccode\u003eSTATUS_ACCESS_DENIED\u003c/code\u003e from \u003ccode\u003eNtCreateFile\u003c/code\u003e for up to half a second\nbefore raising \u003ccode\u003ePermissionError\u003c/code\u003e, since a peer unlinking the lock file as it releases can answer that for a moment; a\nreal denial still fails fast. :pr:\u003ccode\u003e705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEvery lock class now escapes the hostname it publishes, so a host whose \u003ccode\u003esocket.gethostname()\u003c/code\u003e carries a space, a\nnewline or a byte outside UTF-8 no longer writes a marker it reads back as malformed. Such a host used to lose a held\n\u003ccode\u003eSoftReadWriteLock\u003c/code\u003e read slot to a peer and could not take a write slot or a \u003ccode\u003eStrictSoftFileLock\u003c/code\u003e at all. :pr:\u003ccode\u003e709\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.32.3 (2026-08-13)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eThe fork-safety audit hook no longer prints \u003ccode\u003eException ignored in audit hook\u003c/code\u003e with a \u003ccode\u003eTypeError\u003c/code\u003e when an audit\nevent fires during interpreter shutdown, after CPython has already cleared the module globals. :pr:\u003ccode\u003e701\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1585dfef9355a5c77d4a9498cc34d3a98056fdb9\"\u003e\u003ccode\u003e1585dfe\u003c/code\u003e\u003c/a\u003e Release 3.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/00177c32686e60bc5ef9875b5841867ea08d4558\"\u003e\u003ccode\u003e00177c3\u003c/code\u003e\u003c/a\u003e 🐛 fix(lease): clear token after failed acquire (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/5aeb9b6a5fe1e86dcb1c44a927aefffd607b17b0\"\u003e\u003ccode\u003e5aeb9b6\u003c/code\u003e\u003c/a\u003e 📝 docs: say that mode is read-only in the thread-local section (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2634dd1dcc597b319770df027491f16d07662952\"\u003e\u003ccode\u003e2634dd1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/37dccf0276f6db1520db9e3482fdf0446c14276e\"\u003e\u003ccode\u003e37dccf0\u003c/code\u003e\u003c/a\u003e 🧪 test(fork): report where a stalled fork stops (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.32.4...3.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `firecrawl-py` from 4.40.0 to 4.41.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/firecrawl/firecrawl/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.61 to 3.1.62\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.62\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprepare next release by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2222\"\u003egitpython-developers/GitPython#2222\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep bare-repository worktrees non-bare by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2224\"\u003egitpython-developers/GitPython#2224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject unsafe submodule checkout paths by \u003ca href=\"https://github.com/Byron\"\u003e\u003ccode\u003e@​Byron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2225\"\u003egitpython-developers/GitPython#2225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e from v0.16.0 to 0.16.5 in the pre-commit 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/gitpython-developers/GitPython/pull/2226\"\u003egitpython-developers/GitPython#2226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: join backslash line continuations when reading config values by \u003ca href=\"https://github.com/nkbeast\"\u003e\u003ccode\u003e@​nkbeast\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2227\"\u003egitpython-developers/GitPython#2227\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/nkbeast\"\u003e\u003ccode\u003e@​nkbeast\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2227\"\u003egitpython-developers/GitPython#2227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\"\u003ehttps://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\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/gitpython-developers/GitPython/commit/db47516dac750c5968b8f6d388b18712c355df50\"\u003e\u003ccode\u003edb47516\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/10ec385a725fee70def3d9bb7b52208e75174068\"\u003e\u003ccode\u003e10ec385\u003c/code\u003e\u003c/a\u003e get better commit messages from agents\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/b7548979693b3f7c8d13b8da2b7c3ecef07327da\"\u003e\u003ccode\u003eb754897\u003c/code\u003e\u003c/a\u003e test: cover subdirectory discovery and pathspec commands in bare-repo worktre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/9ebf8b62dfb9ca05178334dc909a4d9a52b505df\"\u003e\u003ccode\u003e9ebf8b6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2227\"\u003e#2227\u003c/a\u003e from nkbeast/fix-config-backslash-continuation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a15f7910d1d9a169b5a0c7adf14ce9bf4ede35d0\"\u003e\u003ccode\u003ea15f791\u003c/code\u003e\u003c/a\u003e fix: parse joined config values as a whole\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/60dd9467a73140e00b0d1b0857df5176660b3832\"\u003e\u003ccode\u003e60dd946\u003c/code\u003e\u003c/a\u003e fix: ignore continuation markers in config comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/075a664f3da8564c44f2b74536914b9ce9fb4cc1\"\u003e\u003ccode\u003e075a664\u003c/code\u003e\u003c/a\u003e fix: join backslash line continuations when reading config values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/62d1e2f63ec51f868781c79f8280dc90b46af987\"\u003e\u003ccode\u003e62d1e2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2226\"\u003e#2226\u003c/a\u003e from gitpython-developers/dependabot/pre_commit/pre-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/23d0e9269c84573129acd1f90dbedf639e889c8f\"\u003e\u003ccode\u003e23d0e92\u003c/code\u003e\u003c/a\u003e build(deps): bump \u003ca href=\"https://github.com/astral-sh/ruff-pre-commit\"\u003ehttps://github.com/astral-sh/ruff-pre-commit\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/8a14adc62401f6b3cb8d9dcf8fa78615810a7e98\"\u003e\u003ccode\u003e8a14adc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2225\"\u003e#2225\u003c/a\u003e from gitpython-developers/submodule-path-hardening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.61...3.1.62\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 2.2.0 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.3.0\"\u003e2.3.0\u003c/a\u003e - 2026-09-04\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.2.0...2.3.0\"\u003eCompare with 2.2.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to give precedence to docstrings in stubs vs. source (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/09a2a1323d1b4d022a4ce76a9f2839287b9c100e\"\u003e09a2a13\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/447\"\u003eIssue-447\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/481\"\u003ePR-481\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve nested tuple parentheses (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e095a7cd4c239abd961f7899d7ddb17ea27caead\"\u003ee095a7c\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/487\"\u003ePR-487\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve nested f-string format specs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/38921b70e3dbba9a493aa5117f11a3a7883634cf\"\u003e38921b7\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/486\"\u003ePR-486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable all docstring warnings when passing \u003ccode\u003ewarnings=False\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5cb0ae2f00748288c4009c1d4b6ee19f6aca6b76\"\u003e5cb0ae2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReuse computed parent in \u003ccode\u003eis_imported\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/092ac3162e1477a4b62eb875365996998adbd77d\"\u003e092ac31\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eOnly build debug messages at debug level (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f05a4ae5587d685bea1b0c98294a047b56c8df0\"\u003e8f05a4a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid creating new sets when handling labels (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/06cd02e63c240286d11450887cc01b0ef76d8908\"\u003e06cd02e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMaintain map of AST node type to visitor function (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e21851e732782823006223a7f5f8111b4200a257\"\u003ee21851e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid cyclic refs in ASTs to allow garbage-collecting them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b968de091afc1a4fd241f457538433ce3ada7520\"\u003eb968de0\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache per-module path-related properties during serialization (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8bd6cc4b34e96fc8235271cfa93a1a6a77091707\"\u003e8bd6cc4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eDo not fire load events when no extension has hooked them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0e2ae7c8cd1563d6dcca7a6c37fb8f2ec072cb24\"\u003e0e2ae7c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCompute costly message lazily in alias resolution errors (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e391b8239747bb62908819e55468a961ffbaa99\"\u003e1e391b8\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when merging stubs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/03cae743e02c56af7375ffbfa70d6acf02e5491d\"\u003e03cae74\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3cf2c41bb5f734e57b612b42d178e87af605ae8\"\u003ed3cf2c4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eImprove efficiency of AST parameter extraction (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e37cd488d6adf55065b3ce4e7932faf1ff7d186\"\u003e1e37cd4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache serializable expression fields (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/f9e48c16ebaeb719d5768cb921637aebe377a639\"\u003ef9e48c1\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eUse maps to make JSON encoder faster (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b7de96fb516218ae3bf6a8e6d014a223df67f4a3\"\u003eb7de96f\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid recomputing inherited members when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a29e028ff034752ff747dda17f3f875f22c2a192\"\u003ea29e028\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMake Google, Numpy and Sphinx docstring parsers faster (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/7f39373f8da779fb104dd2b6c11a02d95da628c4\"\u003e7f39373\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003ePre-compile patterns for docstring style detection (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ad58ad5b86390a8a02311189315dd4f59e0300a4\"\u003ead58ad5\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eLRU-cache parsing of type annotations in docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1671e59fb675e9b45338956ce8aa5f5e56692690\"\u003e1671e59\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.3.0\"\u003e2.3.0\u003c/a\u003e - 2026-09-04\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.2.0...2.3.0\"\u003eCompare with 2.2.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to give precedence to docstrings in stubs vs. source (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/09a2a1323d1b4d022a4ce76a9f2839287b9c100e\"\u003e09a2a13\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/447\"\u003eIssue-447\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/481\"\u003ePR-481\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve nested tuple parentheses (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e095a7cd4c239abd961f7899d7ddb17ea27caead\"\u003ee095a7c\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/487\"\u003ePR-487\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve nested f-string format specs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/38921b70e3dbba9a493aa5117f11a3a7883634cf\"\u003e38921b7\u003c/a\u003e by Alperen). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/486\"\u003ePR-486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable all docstring warnings when passing \u003ccode\u003ewarnings=False\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5cb0ae2f00748288c4009c1d4b6ee19f6aca6b76\"\u003e5cb0ae2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReuse computed parent in \u003ccode\u003eis_imported\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/092ac3162e1477a4b62eb875365996998adbd77d\"\u003e092ac31\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eOnly build debug messages at debug level (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f05a4ae5587d685bea1b0c98294a047b56c8df0\"\u003e8f05a4a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid creating new sets when handling labels (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/06cd02e63c240286d11450887cc01b0ef76d8908\"\u003e06cd02e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eMaintain map of AST node type to visitor function (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e21851e732782823006223a7f5f8111b4200a257\"\u003ee21851e\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid cyclic refs in ASTs to allow garbage-collecting them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b968de091afc1a4fd241f457538433ce3ada7520\"\u003eb968de0\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache per-module path-related properties during serialization (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8bd6cc4b34e96fc8235271cfa93a1a6a77091707\"\u003e8bd6cc4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eDo not fire load events when no extension has hooked them (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0e2ae7c8cd1563d6dcca7a6c37fb8f2ec072cb24\"\u003e0e2ae7c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCompute costly message lazily in alias resolution errors (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e391b8239747bb62908819e55468a961ffbaa99\"\u003e1e391b8\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when merging stubs (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/03cae743e02c56af7375ffbfa70d6acf02e5491d\"\u003e03cae74\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAvoid iterating many times over function parameters when diff'ing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3cf2c41bb5f734e57b612b42d178e87af605ae8\"\u003ed3cf2c4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eImprove efficiency of AST parameter extraction (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1e37cd488d6adf55065b3ce4e7932faf1ff7d186\"\u003e1e37cd4\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eCache serializable expression fields (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/f9e48c16ebaeb719d5768cb921637aebe377a639\"\u003ef9e48c1\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eUse maps to make JSON encoder faster (\u003ca href=\"https://github.com/mkdocs...\n\n_Description has been truncated_","html_url":"https://github.com/Amaan8005/DocMind-AI/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amaan8005%2FDocMind-AI/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-12T17:25:27.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5434895825","node_id":"PR_kwDOOsXHvc8AAAABDRY0tA","number":924,"state":"closed","title":"chore(deps): bump the backend group across 1 directory with 41 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-13T10:30:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-12T17:25:27.000Z","updated_at":"2026-09-13T10:30:03.000Z","time_to_close":61475,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend","update_count":41,"packages":[{"name":"langchain-community","old_version":"0.3.31","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"sentence-transformers","old_version":"5.7.0","new_version":"6.0.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.3","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"websockets","old_version":"17.0.1","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"alembic","old_version":"1.19.1","new_version":"1.19.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"ctranslate2","old_version":"4.8.1","new_version":"4.8.2","repository_url":"https://github.com/OpenNMT/CTranslate2"},{"name":"onnxruntime","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"yt-dlp","old_version":"2026.7.4","new_version":"2026.8.19","repository_url":"https://github.com/yt-dlp/yt-dlp"},{"name":"deepgram-sdk","old_version":"7.7.0","new_version":"7.8.1","repository_url":"https://github.com/deepgram/deepgram-python-sdk"},{"name":"assemblyai","old_version":"1.0.0","new_version":"1.3.0","repository_url":"https://github.com/AssemblyAI/assemblyai-python-sdk"},{"name":"azure-cognitiveservices-speech","old_version":"1.51.1","new_version":"1.51.2"},{"name":"boto3","old_version":"1.43.74","new_version":"1.43.91","repository_url":"https://github.com/boto/boto3"},{"name":"openai","old_version":"3.3.0","new_version":"3.11.0","repository_url":"https://github.com/openai/openai-python"},{"name":"presidio-anonymizer","old_version":"2.2.362","new_version":"2.2.364","repository_url":"https://github.com/data-privacy-stack/presidio"},{"name":"gliner","old_version":"0.2.28","new_version":"0.2.29","repository_url":"https://github.com/urchade/GLiNER"},{"name":"msal","old_version":"1.37.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"onnxscript","old_version":"0.7.1","new_version":"0.7.2","repository_url":"https://github.com/microsoft/onnxscript"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.6","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"onnxruntime-gpu","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"cuda-pathfinder","old_version":"1.6.1","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"botocore","old_version":"1.43.75","new_version":"1.43.91","repository_url":"https://github.com/boto/botocore"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"google-api-core","old_version":"2.35.0","new_version":"2.36.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"narwhals","old_version":"2.25.0","new_version":"2.26.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.10","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"import-linter","old_version":"2.13","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"},{"name":"whisperx","old_version":"3.8.1","new_version":"3.8.6","repository_url":"https://github.com/m-bain/whisperx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend group with 41 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.31` | `0.4.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.7.0` | `6.0.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.3` | `0.52.4` |\n| [websockets](https://github.com/python-websockets/websockets) | `17.0.1` | `17.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.1` | `1.19.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [ctranslate2](https://github.com/OpenNMT/CTranslate2) | `4.8.1` | `4.8.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | `2026.7.4` | `2026.8.19` |\n| [deepgram-sdk](https://github.com/deepgram/deepgram-python-sdk) | `7.7.0` | `7.8.1` |\n| [assemblyai](https://github.com/AssemblyAI/assemblyai-python-sdk) | `1.0.0` | `1.3.0` |\n| azure-cognitiveservices-speech | `1.51.1` | `1.51.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.74` | `1.43.91` |\n| [openai](https://github.com/openai/openai-python) | `3.3.0` | `3.11.0` |\n| [presidio-anonymizer](https://github.com/data-privacy-stack/presidio) | `2.2.362` | `2.2.364` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.28` | `0.2.29` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.37.0` | `1.38.0` |\n| [onnxscript](https://github.com/microsoft/onnxscript) | `0.7.1` | `0.7.2` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.6` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.6.1` | `1.8.1` |\n| [botocore](https://github.com/boto/botocore) | `1.43.75` | `1.43.91` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.35.0` | `2.36.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.58.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.13` | `2.15` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n| [whisperx](https://github.com/m-bain/whisperx) | `3.8.1` | `3.8.6` |\n\n\nUpdates `langchain-community` from 0.3.31 to 0.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-community==0.4.2\u003c/h2\u003e\n\u003ch2\u003eSunsetting langchain-community\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003elangchain-community is being sunset\u003c/strong\u003e. See \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/674\"\u003elangchain-ai/langchain-community#674\u003c/a\u003e for details and guidance. Thank you to everyone who has contributed integrations, fixes, reviews, and maintenance over the years.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: modernize infra by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/402\"\u003elangchain-ai/langchain-community#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PMID from PubMedAPIWrapper utility by \u003ca href=\"https://github.com/davale88\"\u003e\u003ccode\u003e@​davale88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/43\"\u003elangchain-ai/langchain-community#43\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egitlab api wrapper[patch]: fix create_file eats the first letter by \u003ca href=\"https://github.com/martra\"\u003e\u003ccode\u003e@​martra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/153\"\u003elangchain-ai/langchain-community#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate lancedb.py by \u003ca href=\"https://github.com/AmirBraham\"\u003e\u003ccode\u003e@​AmirBraham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/108\"\u003elangchain-ai/langchain-community#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrecting OpenSearchVectorStore documentation for AsyncClient import problem by \u003ca href=\"https://github.com/georg-wind\"\u003e\u003ccode\u003e@​georg-wind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/252\"\u003elangchain-ai/langchain-community#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test_duckduckdgo_search_api.py import by \u003ca href=\"https://github.com/theprashasst\"\u003e\u003ccode\u003e@​theprashasst\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/248\"\u003elangchain-ai/langchain-community#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typos. by \u003ca href=\"https://github.com/oumizx\"\u003e\u003ccode\u003e@​oumizx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/277\"\u003elangchain-ai/langchain-community#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect misleading CosmosDB connection string validation error message by \u003ca href=\"https://github.com/lasagna0\"\u003e\u003ccode\u003e@​lasagna0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/315\"\u003elangchain-ai/langchain-community#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix score threshold is zero scenario by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/398\"\u003elangchain-ai/langchain-community#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link of partition docs of \u003ccode\u003eunstructured\u003c/code\u003e package by \u003ca href=\"https://github.com/mhihasan\"\u003e\u003ccode\u003e@​mhihasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/354\"\u003elangchain-ai/langchain-community#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(loader): fix TextLoader doc string indentation by \u003ca href=\"https://github.com/vneogi199\"\u003e\u003ccode\u003e@​vneogi199\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/360\"\u003elangchain-ai/langchain-community#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed Syntax Error in Trino dialect by \u003ca href=\"https://github.com/saathwik-tk\"\u003e\u003ccode\u003e@​saathwik-tk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/399\"\u003elangchain-ai/langchain-community#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: message line regex by \u003ca href=\"https://github.com/martinschaer\"\u003e\u003ccode\u003e@​martinschaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/196\"\u003elangchain-ai/langchain-community#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: remove integration as the product has changed by \u003ca href=\"https://github.com/Xe\"\u003e\u003ccode\u003e@​Xe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/159\"\u003elangchain-ai/langchain-community#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate sql_database.py to support materialized view by \u003ca href=\"https://github.com/groundrace\"\u003e\u003ccode\u003e@​groundrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/281\"\u003elangchain-ai/langchain-community#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRSS Feed Document Loader Publish Date Fallback by \u003ca href=\"https://github.com/mariomeyer\"\u003e\u003ccode\u003e@​mariomeyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/219\"\u003elangchain-ai/langchain-community#219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: lint by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/405\"\u003elangchain-ai/langchain-community#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): add auto-labelers by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/406\"\u003elangchain-ai/langchain-community#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cost by 1k tokens for sonnet 4.5 by \u003ca href=\"https://github.com/higorgardin\"\u003e\u003ccode\u003e@​higorgardin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/391\"\u003elangchain-ai/langchain-community#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Refactor query_builder to use limit method by \u003ca href=\"https://github.com/userNanni\"\u003e\u003ccode\u003e@​userNanni\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/377\"\u003elangchain-ai/langchain-community#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate document_loaders from rapidocr_onnxruntime to rapidocr by \u003ca href=\"https://github.com/athoik\"\u003e\u003ccode\u003e@​athoik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/375\"\u003elangchain-ai/langchain-community#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate Oracle AI Vector Search classes by \u003ca href=\"https://github.com/fileames\"\u003e\u003ccode\u003e@​fileames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/283\"\u003elangchain-ai/langchain-community#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add default factory to api_wrapper of GoogleSerperRun by \u003ca href=\"https://github.com/duccm94\"\u003e\u003ccode\u003e@​duccm94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/157\"\u003elangchain-ai/langchain-community#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[fix]: support spark x1 reasoning model's 'reasoning_content' field. by \u003ca href=\"https://github.com/vsxd\"\u003e\u003ccode\u003e@​vsxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/251\"\u003elangchain-ai/langchain-community#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use uuid1() instead of uuid4() for Cassandra TIMEUUID columns by \u003ca href=\"https://github.com/woohhan\"\u003e\u003ccode\u003e@​woohhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/225\"\u003elangchain-ai/langchain-community#225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImport chat_models from langchain_community in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/198\"\u003elangchain-ai/langchain-community#198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Retrieve all Slack channels visible to the client by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/146\"\u003elangchain-ai/langchain-community#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: fix elevenlabs \u0026gt;=2.3.0 api change by \u003ca href=\"https://github.com/ebwood\"\u003e\u003ccode\u003e@​ebwood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/102\"\u003elangchain-ai/langchain-community#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: write image data to buffer before checking for empty BytesIO in image extraction by \u003ca href=\"https://github.com/mighoocool\"\u003e\u003ccode\u003e@​mighoocool\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/193\"\u003elangchain-ai/langchain-community#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealign SupabaseVectorStore ID handling with JS lib by \u003ca href=\"https://github.com/taishikato\"\u003e\u003ccode\u003e@​taishikato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/137\"\u003elangchain-ai/langchain-community#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(document_loaders): yt api as per latest version by \u003ca href=\"https://github.com/lokeshparab\"\u003e\u003ccode\u003e@​lokeshparab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/206\"\u003elangchain-ai/langchain-community#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add comprehensive routing support to OpenSearchVectorSearch by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/349\"\u003elangchain-ai/langchain-community#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(chat_models): parallel tool calls in ChatTongyi when incremental streaming output is enabled. by \u003ca href=\"https://github.com/TBice123123\"\u003e\u003ccode\u003e@​TBice123123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/111\"\u003elangchain-ai/langchain-community#111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(infra): remove unused \u003ccode\u003edataclasses-json\u003c/code\u003e dependency by \u003ca href=\"https://github.com/noirbee\"\u003e\u003ccode\u003e@​noirbee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/270\"\u003elangchain-ai/langchain-community#270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/408\"\u003elangchain-ai/langchain-community#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(agent_toolkits): Make \u003ccode\u003eWebClient\u003c/code\u003e injectable for Slack toolkit by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/145\"\u003elangchain-ai/langchain-community#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(document_loaders): add flexible timeout to \u003ccode\u003ePlaywrightURLLoader\u003c/code\u003e by \u003ca href=\"https://github.com/parthsompura\"\u003e\u003ccode\u003e@​parthsompura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/104\"\u003elangchain-ai/langchain-community#104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SSL verification option to recursive link fetching by \u003ca href=\"https://github.com/rajasblack\"\u003e\u003ccode\u003e@​rajasblack\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/46\"\u003elangchain-ai/langchain-community#46\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: some cleanup by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/412\"\u003elangchain-ai/langchain-community#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(azure): Fix key assignment logic by \u003ca href=\"https://github.com/yashovardhan99\"\u003e\u003ccode\u003e@​yashovardhan99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/418\"\u003elangchain-ai/langchain-community#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(vectorstores): add routing support for hybrid search by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/416\"\u003elangchain-ai/langchain-community#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enit: use american english by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/419\"\u003elangchain-ai/langchain-community#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): clarify allowed scopes section in PR linting workflow by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/420\"\u003elangchain-ai/langchain-community#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/422\"\u003elangchain-ai/langchain-community#422\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/langchain-ai/langchain-community/commit/7c10a5fa327f6aaaf7c932822a9e5d144891406e\"\u003e\u003ccode\u003e7c10a5f\u003c/code\u003e\u003c/a\u003e fix: bump deps and fix test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/0d3630d463521db776ef9f4d2f7d8eceab3d1fcc\"\u003e\u003ccode\u003e0d3630d\u003c/code\u003e\u003c/a\u003e fix: sunset package (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/3ade247a075de8a20b95bb48d897a067ee1fecb5\"\u003e\u003ccode\u003e3ade247\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/27c60bad4c17b0460d174abac0fb5d1ade0bfd51\"\u003e\u003ccode\u003e27c60ba\u003c/code\u003e\u003c/a\u003e chore(deps): bump langsmith from 0.7.31 to 0.8.4 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/666\"\u003e#666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/2e8d934934f79923c9349ca67ed21de4dc268033\"\u003e\u003ccode\u003e2e8d934\u003c/code\u003e\u003c/a\u003e chore(deps): bump jupyter-server from 2.17.0 to 2.18.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/f0b16c2a40cca43cc2aac13880d56d3f42ea89b1\"\u003e\u003ccode\u003ef0b16c2\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.2.0 to 3.2.1 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/bfbfe3f1822dfc0acc2a2999108ac7c721f4f8e2\"\u003e\u003ccode\u003ebfbfe3f\u003c/code\u003e\u003c/a\u003e chore(deps): update scikit-learn requirement from \u0026lt;2,\u0026gt;=1.2.2 to \u0026gt;=1.7.2,\u0026lt;2 in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/4cbef29068509f90e8284a56a51b4ec3c1fd3cd5\"\u003e\u003ccode\u003e4cbef29\u003c/code\u003e\u003c/a\u003e chore(deps): update hdbcli requirement from \u0026lt;3,\u0026gt;=2.19.21 to \u0026gt;=2.28.20,\u0026lt;3 in /...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/22377e1e92dfdda5424f4eba6d70e511075f8226\"\u003e\u003ccode\u003e22377e1\u003c/code\u003e\u003c/a\u003e chore(deps): update keybert requirement from \u0026gt;=0.8.5 to \u0026gt;=0.9.0 in /libs/comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/c4dbaa2174bf743e2b6f6a74684c62786ecd6334\"\u003e\u003ccode\u003ec4dbaa2\u003c/code\u003e\u003c/a\u003e chore(deps): bump notebook from 7.5.4 to 7.5.6 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.31...libs/community/v0.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.7.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.1 - Restore the PyLate prefix on prompted checkpoints, 80 documented multi-vector models\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a multi-vector loading bug: PyLate checkpoints that carry both a \u003ccode\u003e[Q]\u003c/code\u003e/\u003ccode\u003e[D]\u003c/code\u003e prefix and a text prompt lost the prefix, so they were encoded without a marker they were trained with. It also grows the documented multi-vector model tables from 51 checkpoints to 80.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==6.0.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==6.0.1\npip install sentence-transformers[onnx-gpu]==6.0.1\npip install sentence-transformers[onnx]==6.0.1\npip install sentence-transformers[openvino]==6.0.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==6.0.1\npip install sentence-transformers[audio]==6.0.1\npip install sentence-transformers[video]==6.0.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==6.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eCompose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003ePyLate supports a prefix as well as prompt text, and Sentence Transformers assumed that these were mutually exclusive. However, the following three checkpoints carry both a prefix and a prompt, and were trained with the prefix prepended to the prompt text:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero\"\u003e\u003ccode\u003elightonai/ColBERT-Zero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-unsupervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-unsupervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-supervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-supervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePyLate trained these checkpoints on \u003ccode\u003e[CLS] [Q] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] [D] search_document: ...\u003c/code\u003e, but Sentence Transformers dropped the prefix and encoded them as \u003ccode\u003e[CLS] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] search_document: ...\u003c/code\u003e. After the fix, the performance of the \u003ccode\u003eColBERT-Zero\u003c/code\u003e model improved from 0.6569 NDCG@10 to 0.6824 on the NanoBEIR benchmark. To my knowledge, only these 3 checkpoints used both a prefix and a prompt, so this is the only case where the bug would have affected you.\u003c/p\u003e\n\u003ch2\u003eForward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eRouter.forward\u003c/code\u003e has always passed \u003ccode\u003etask\u003c/code\u003e down to the routed module, but \u003ccode\u003eRouter.preprocess\u003c/code\u003e did not, so anything a module does with the task at preprocessing time did nothing behind a \u003ccode\u003eRouter\u003c/code\u003e: \u003ccode\u003equery_length\u003c/code\u003e and \u003ccode\u003edocument_length\u003c/code\u003e caps, \u003ccode\u003equery_expansion\u003c/code\u003e, and the chat-template \u003ccode\u003etask\u003c/code\u003e keyword. No released checkpoint combines a \u003ccode\u003eRouter\u003c/code\u003e with those settings, so this is a latent bug rather than one you are likely to have hit. It would have affected anyone building such a model themselves, with no error to indicate it.\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe multi-vector \u003ca href=\"https://sbert.net/docs/multi_vector_encoder/pretrained_models.html\"\u003epretrained models tables\u003c/a\u003e grew from 29 text and 22 visual document retrieval checkpoints to 38 and 42 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3963\"\u003e#3963\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e), with \u003ccode\u003erevision\u003c/code\u003e and \u003ccode\u003etrust_remote_code\u003c/code\u003e notes refreshed as upstream pull requests merged (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDocumented which Hub tag to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e), and linked the Multi-Vector Encoder blogposts from the docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded MultiVectorEncoder to the Agent Skill README and refreshed the SauerkrautLM scores (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3955\"\u003e#3955\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCorrected the minimum versions in the README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3952\"\u003e#3952\u003c/a\u003e). It still recommended PyTorch 1.11.0+ and \u003ccode\u003etransformers\u003c/code\u003e v4.41.0+, where v6.0 requires PyTorch 2.2+ and \u003ccode\u003etransformers\u003c/code\u003e v5.0+. This is the text rendered as the PyPI project description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM scores by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3955\"\u003ehuggingface/sentence-transformers#3955\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the README dependency versions by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3952\"\u003ehuggingface/sentence-transformers#3952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add more MultiVectorEncoder models to the pretrained models tables by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3963\"\u003ehuggingface/sentence-transformers#3963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify which Hub tags to filter on for each model type by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3964\"\u003ehuggingface/sentence-transformers#3964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Link the Multi-Vector Encoder blogposts by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3966\"\u003ehuggingface/sentence-transformers#3966\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/huggingface/sentence-transformers/commit/b0acd1a4d22ba2bc10072868ddea7612561c9424\"\u003e\u003ccode\u003eb0acd1a\u003c/code\u003e\u003c/a\u003e Update README installation versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9b415ac93b586400258ac9876c81ce28c36547ba\"\u003e\u003ccode\u003e9b415ac\u003c/code\u003e\u003c/a\u003e Release v6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cc0669cea57c834c651f001e3cb07b6fc847f147\"\u003e\u003ccode\u003ecc0669c\u003c/code\u003e\u003c/a\u003e Add/update revisions for pretrained MVE models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f8390f466c9d127cd51dd41805557adaab09d472\"\u003e\u003ccode\u003ef8390f4\u003c/code\u003e\u003c/a\u003e [docs] Refresh the MultiVectorEncoder pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4b517229c1dc17ead6c2a61b3d248f62fe4738eb\"\u003e\u003ccode\u003e4b51722\u003c/code\u003e\u003c/a\u003e [fix] Compose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/e99c4a9f2422c285cd2d286aeda1af237eadd01d\"\u003e\u003ccode\u003ee99c4a9\u003c/code\u003e\u003c/a\u003e [fix] Forward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/5d2ec939e960d85afe638bba87523926c63ab263\"\u003e\u003ccode\u003e5d2ec93\u003c/code\u003e\u003c/a\u003e [docs] Link the Multi-Vector Encoder blogposts (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9c5de2aa8432d7d150e35a7cd4383a39a13e307b\"\u003e\u003ccode\u003e9c5de2a\u003c/code\u003e\u003c/a\u003e [docs] Clarify which Hub tags to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/83680bdf460229a41dd3bf07ed80b5a65d29a430\"\u003e\u003ccode\u003e83680bd\u003c/code\u003e\u003c/a\u003e [docs] Add more MultiVectorEncoder models to the pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1a43278abe510ca9011fdd0e698c58470ef830eb\"\u003e\u003ccode\u003e1a43278\u003c/code\u003e\u003c/a\u003e docs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.7.0...v6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.3 to 0.141.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.141.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for background tasks and headers from dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16105\"\u003e#16105\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📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16104\"\u003e#16104\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.141.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more convenient with \u003ccode\u003efastapi dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16102\"\u003e#16102\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.140.13\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003estatus_code\u003c/code\u003e being ignored for SSE and JSONL streaming endpoints. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15937\"\u003e#15937\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix \u003ccode\u003eformat_sse_event\u003c/code\u003e docstring rendering of \u003ccode\u003e\\n\\n\u003c/code\u003e terminator. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15613\"\u003e#15613\u003c/a\u003e by \u003ca href=\"https://github.com/AshNicolus\"\u003e\u003ccode\u003e@​AshNicolus\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add API reference page for fastapi.sse. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15930\"\u003e#15930\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.12\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix line splitting in \u003ccode\u003eformat_sse_event\u003c/code\u003e to comply with SSE spec. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15515\"\u003e#15515\u003c/a\u003e by \u003ca href=\"https://github.com/Zawwarsami16\"\u003e\u003ccode\u003e@​Zawwarsami16\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.11\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eresponse_model_*\u003c/code\u003e params ignored for non-generator endpoints with \u003ccode\u003eIterable[..]\u003c/code\u003e return type. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15093\"\u003e#15093\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling sequences with nested Annotated types. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14874\"\u003e#14874\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Accept any base test failure as regression. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16092\"\u003e#16092\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🐛 Preserve pytest exit code in regression check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16091\"\u003e#16091\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✅ Test PR regressions against base code. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16090\"\u003e#16090\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.140.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eexclude_defaults\u003c/code\u003e not propagated to dict keys and values in \u003ccode\u003ejsonable_encoder\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16043\"\u003e#16043\u003c/a\u003e by \u003ca href=\"https://github.com/MBGrao\"\u003e\u003ccode\u003e@​MBGrao\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/95f8322ee1dcda7ceace7b1c4f6c9915b36d748f\"\u003e\u003ccode\u003e95f8322\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16106\"\u003e#16106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f137944c435cff4e4b30ea7d12855ea88ddb868c\"\u003e\u003ccode\u003ef137944\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d62354434b2e508fe89024213b220ca8e67dea5e\"\u003e\u003ccode\u003ed623544\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for background tasks and headers from dependencies in `app.fron...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d211b9c1009d577f39fa2b19b10d9a93a72a0ed\"\u003e\u003ccode\u003e1d211b9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a1f8768411e62093e70ce142ea10863a485643c\"\u003e\u003ccode\u003e8a1f876\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16104\"\u003e#16104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7e7b651d6946c07cc9f675f39c9501d08319e57\"\u003e\u003ccode\u003ec7e7b65\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16103\"\u003e#16103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6bceb84053eb2405e9c000aad30ea13367b5ee32\"\u003e\u003ccode\u003e6bceb84\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5429fed84e84e32672c25a953eca3429b841ce90\"\u003e\u003ccode\u003e5429fed\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more conven...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/628663f4f899c465da423bce681c7adf9a218948\"\u003e\u003ccode\u003e628663f\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.140.13 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16096\"\u003e#16096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0b54fd00273019034dd30b120ac842e65d80690e\"\u003e\u003ccode\u003e0b54fd0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.3...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.3 to 0.52.4\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.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\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.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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/8988c23704fc373c9206cca53ec57dd8ad7f44a5\"\u003e\u003ccode\u003e8988c23\u003c/code\u003e\u003c/a\u003e Stabilize macOS Python 3.13 signal shutdown tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/898ddca9254b53c5bf7a6ee509756704caaa949f\"\u003e\u003ccode\u003e898ddca\u003c/code\u003e\u003c/a\u003e Update PyPI publish action to version 1.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3869f8aac2bdd040fa3fbe564e1dad67e2637641\"\u003e\u003ccode\u003e3869f8a\u003c/code\u003e\u003c/a\u003e Restore Mermaid diagram rendering (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/64148a9c574e1eb87d3d09b3ce4c256606f8d973\"\u003e\u003ccode\u003e64148a9\u003c/code\u003e\u003c/a\u003e Version 0.52.4 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3079\"\u003e#3079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9e9e5691bd14d5c4cd66d9bd76c7730bc48461a2\"\u003e\u003ccode\u003e9e9e569\u003c/code\u003e\u003c/a\u003e docs: correct release example PR number (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b783dacab50b9d6767b0cf65826b2dc3aae21909\"\u003e\u003ccode\u003eb783dac\u003c/code\u003e\u003c/a\u003e Remove duplicate Date header from SansIO WebSocket handshakes (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/27019b2a4b1fa6d68a289fcf7d738fbdc6ee4e5d\"\u003e\u003ccode\u003e27019b2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1b6427311bb84a15addee688f6d41d96e33f8b0a\"\u003e\u003ccode\u003e1b64273\u003c/code\u003e\u003c/a\u003e Fix a typo in index.md (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `websockets` from 17.0.1 to 17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/e87ea9be0373edd5065b5e94dfa714cfde23023b\"\u003e\u003ccode\u003ee87ea9b\u003c/code\u003e\u003c/a\u003e Release version 17.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/caf68ab866350ab43305bc0a2ce28e4c845b90ab\"\u003e\u003ccode\u003ecaf68ab\u003c/code\u003e\u003c/a\u003e Minor whitespace normalization.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/f4c73b76c74044c53f700360792448ee0328983b\"\u003e\u003ccode\u003ef4c73b7\u003c/code\u003e\u003c/a\u003e Accept pathlib.Path objects in path arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/b1e4a144d1824ec4dbd2416489691bbe212a1be8\"\u003e\u003ccode\u003eb1e4a14\u003c/code\u003e\u003c/a\u003e Clarify when the new asyncio implementation became the default.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c7cc7ed3508c3ce082801994e7587ac694758102\"\u003e\u003ccode\u003ec7cc7ed\u003c/code\u003e\u003c/a\u003e Move process_exception to the Sans-I/O layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/2543503f5e6633e79afb20992511b12ef2b7d663\"\u003e\u003ccode\u003e2543503\u003c/code\u003e\u003c/a\u003e Support reconnecting in the threading implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1c8fb090d966c358dcb4069b8c71c13969d1cec0\"\u003e\u003ccode\u003e1c8fb09\u003c/code\u003e\u003c/a\u003e Follow redirects in the sync implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1f7f0e537233ac82e4ca51921678963c696c8c08\"\u003e\u003ccode\u003e1f7f0e5\u003c/code\u003e\u003c/a\u003e Deprecate calling connect() directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c06d5c566b04113405272230856de669e8534e74\"\u003e\u003ccode\u003ec06d5c5\u003c/code\u003e\u003c/a\u003e Support overriding host/post in the sync client.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/885e69bc1a218566bb0ad653c2c326e80245ab6a\"\u003e\u003ccode\u003e885e69b\u003c/code\u003e\u003c/a\u003e Add tests for connecting without a context manager.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/17.0.1...17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.19.1 to 1.19.2\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.19.2\u003c/h1\u003e\n\u003cp\u003eReleased: September 4, 2026\u003c/p\u003e\n\u003ch2\u003echanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[changed] [autogenerate]\u003c/strong\u003e The autogenerate plugin for CHECK constraint detection by name, added in\n1.19.0. for \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/508\"\u003e#508\u003c/a\u003e, is no longer enabled by default.  It has been\nrenamed from \u003ccode\u003ealembic.autogenerate.checkconstraint_byname\u003c/code\u003e to\n\u003ccode\u003ealembic.ext.checkconstraint_byname\u003c/code\u003e and no longer matches on the\n\u003ccode\u003e\u0026quot;alembic.autogenerate.*\u0026quot;\u003c/code\u003e wildcard, which remains the default plugin\nspecification.  The previous name will still function as well if placed in\nthe plugins list explicitly,  both to enable the plugin and within a\n\u003ccode\u003e\u0026quot;~\u0026quot;\u003c/code\u003e exclusion, so that an \u003ccode\u003eenv.py\u003c/code\u003e written against 1.19.0 or 1.19.1\nrequires no change.\u003c/p\u003e\n\u003cp\u003eThe plugin is now recommended only for schemas that ensure the naming of\nall constraints using a client side naming convention, otherwise there's a\npersistent risk of false positives. See\n\u003ccode\u003eautogenerate_check_constraints\u003c/code\u003e for background on things to be aware\nof when using this plugin.\u003c/p\u003e\n\u003cp\u003eAs part of this change \u0026quot;type bound\u0026quot; CHECK constraints, which include\nconstraints generated for the \u003ccode\u003eBoolean\u003c/code\u003e and \u003ccode\u003eEnum\u003c/code\u003e datatypes when the\n\u003ccode\u003ecreate_constraint\u003c/code\u003e parameter is set to True, are no longer ignored in\nthe metadata side, so that normal name-based matching can occur for\nthese constraints.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1859\"\u003e#1859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate] [batch]\u003c/strong\u003e The target of a \u003ccode\u003e~sqlalchemy.schema.ForeignKey\u003c/code\u003e is now located\nusing the \u003ccode\u003eForeignKey.target_tokens\u003c/code\u003e and\n\u003ccode\u003eForeignKey.target_table_key\u003c/code\u003e accessors added in SQLAlchemy 2.1, rather\nthan by splitting the dotted string form of that target on \u003ccode\u003e\u0026quot;.\u0026quot;\u003c/code\u003e.  As a\ndot inside a schema, table or column name cannot be told apart from the\nseparator between those names, a foreign key whose target name contained\na dot was previously mis-parsed by autogenerate rendering as well as by\nbatch migrations.  The dotted string continues to be split when running\nagainst SQLAlchemy 2.0, where these accessors are not present.  Thanks to\nGyanu Mayank for the initial pull request.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1860\"\u003e#1860\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.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\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\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joserfc` from 1.7.4 to 1.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/joserfc/releases\"\u003ejoserfc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd max_recipients on JWERegistry  -  by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df\"\u003e\u003c!-- raw HTML omitted --\u003e(d6dc8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore unknown kty in KeySet.import_key_set (RFC 7517 §5)  -  by \u003ca href=\"https://github.com/RalphBragg\"\u003e\u003ccode\u003e@​RalphBragg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003eauthlib/joserfc#103\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd363\"\u003e\u003c!-- raw HTML omitted --\u003e(4dcd3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/joserfc/blob/main/docs/changelog.rst\"\u003ejoserfc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on August 29, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJWK\u003c/strong\u003e: Ignore keys with unknown \u003ccode\u003ekty\u003c/code\u003e values when importing a key set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJWE\u003c/strong\u003e: Add \u003ccode\u003emax_recipients\u003c/code\u003e to \u003ccode\u003eJWERegistry\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/joserfc/commit/357c319119773c021bc8da433bdf31e42f77974b\"\u003e\u003ccode\u003e357c319\u003c/code\u003e\u003c/a\u003e chore: release 1.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df6c7609277e741069d3733e43996c1cd17\"\u003e\u003ccode\u003ed6dc8df\u003c/code\u003e\u003c/a\u003e feat: add max_recipients on JWERegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/26a10275e88276184f91ae2a6409647bfac7fea5\"\u003e\u003ccode\u003e26a1027\u003c/code\u003e\u003c/a\u003e docs: update sponsors link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd3635c65298d26869bac382aaf1435def68e1\"\u003e\u003ccode\u003e4dcd363\u003c/code\u003e\u003c/a\u003e fix: ignore unknown kty in KeySet.import_key_set (RFC 7517 §5) (\u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.25.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose measured duration on Timer context manager by \u003ca href=\"https://github.com/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse specific exception for duplicate timeseries by \u003ca href=\"https://github.com/kajinamit\"\u003e\u003ccode\u003e@​kajinamit\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1074\"\u003eprometheus/client_python#1074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake clear() a no-op for label-less metrics (fixes \u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/707\"\u003e#707\u003c/a\u003e) by \u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1184\"\u003eprometheus/client_python#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse object instead of Any for labels() parameters by \u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TLS version parameters for start_wsgi_server by \u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Enum arguments before registering the collector by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not emit a leading zero in floatToGoString exponents \u0026gt;= 10 by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1190\"\u003eprometheus/client_python#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make test suite pass on Windows and Python 3.12+ by \u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse the native histogram sum as a float by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1192\"\u003eprometheus/client_python#1192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove nameless collectors from the registry on unregister by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1191\"\u003eprometheus/client_python#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix operator precedence allowing exemplars on any metric type by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1188\"\u003eprometheus/client_python#1188\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/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1183\"\u003eprometheus/client_python#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.25.0...v0.26.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/prometheus/client_python/commit/9b6b971f903e7a08f88da5a95048b7a2a28f55a5\"\u003e\u003ccode\u003e9b6b971\u003c/code\u003e\u003c/a\u003e Release v0.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb072c2d312bd55cce11f27e7efbc1b0104e2a56\"\u003e\u003ccode\u003efb072c2\u003c/code\u003e\u003c/a\u003e Fix operator precedence allowing exemplars on any metric type (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1188\"\u003e#1188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6e22fb551bdc9b4d81e73791dc1644cca2221bb1\"\u003e\u003ccode\u003e6e22fb5\u003c/code\u003e\u003c/a\u003e Remove nameless collectors from the registry on unregister (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/5b094790a85d8d024b442c7adea9b0ca5ccd8335\"\u003e\u003ccode\u003e5b09479\u003c/code\u003e\u003c/a\u003e Parse the native histogram sum as a float (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/769b4150e0970f664095cba30e872dbac45ba9b0\"\u003e\u003ccode\u003e769b415\u003c/code\u003e\u003c/a\u003e fix: make test suite pass on Windows and Python 3.12+ (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d0b497ffe069865537e55af52cb00c329d58a6f0\"\u003e\u003ccode\u003ed0b497f\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1195\"\u003e#1195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/75603d7871d6343ca3118134613ea07fc06205ee\"\u003e\u003ccode\u003e75603d7\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1194\"\u003e#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb2351fe0463581b85ac38f7fc870f2c564b6795\"\u003e\u003ccode\u003efb2351f\u003c/code\u003e\u003c/a\u003e Do not emit a leading zero in floatToGoString exponents \u0026gt;= 10 (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1190\"\u003e#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a39a697c805576781da71f70d1aa78c972ba9288\"\u003e\u003ccode\u003ea39a697\u003c/code\u003e\u003c/a\u003e Validate Enum arguments before registering the collector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a96f6f4bc00eeaa97827b8d49be8ce9c434b5a27\"\u003e\u003ccode\u003ea96f6f4\u003c/code\u003e\u003c/a\u003e Add TLS version parameters for start_wsgi_server (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.6 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\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/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.6...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ctranslate2` from 4.8.1 to 4.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases\"\u003ectranslate2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.8.2\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://github.com/Anai-Guo\"\u003e\u003ccode\u003e@​Anai-Guo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix out-of-bounds reads in StorageView index validation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2073\"\u003e#2073\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Nathan Keys (Halo Forge Labs)\u003c/li\u003e\n\u003cli\u003eUpdate cxxopts to v3.3.1 for GCC 15 compatibility (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2084\"\u003e#2084\u003c/a\u003e) by \u003ca href=\"https://github.com/bekard\"\u003e\u003ccode\u003e@​bekard\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate model variable sizes before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2091\"\u003e#2091\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Hyeonbell\u003c/li\u003e\n\u003cli\u003eCheck StorageView reserve byte size before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2094\"\u003e#2094\u003c/a\u003e) by \u003ca href=\"https://github.com/infinityscroll\"\u003e\u003ccode\u003e@​infinityscroll\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the runtime dependency on setuptools (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2096\"\u003e#2096\u003c/a\u003e) by \u003ca href=\"https://github.com/Ravencentric\"\u003e\u003ccode\u003e@​Ravencentric\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/blob/master/CHANGELOG.md\"\u003ectranslate2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/OpenNM...\n\n_Description has been truncated_","html_url":"https://github.com/attevon-llc/OpenTranscribe/pull/924","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/attevon-llc%2FOpenTranscribe/issues/924","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/924/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-10T02:51:42.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5407147813","node_id":"PR_kwDOOsXHvc8AAAABC7VkQg","number":902,"state":"closed","title":"chore(deps): bump the backend group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-12T11:39:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-10T02:51:42.000Z","updated_at":"2026-09-12T11:39:48.000Z","time_to_close":204484,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend","update_count":37,"packages":[{"name":"langchain-community","old_version":"0.3.31","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"sentence-transformers","old_version":"5.7.0","new_version":"6.0.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.52.3","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"websockets","old_version":"17.0.1","new_version":"17.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"alembic","old_version":"1.19.1","new_version":"1.19.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.13.4","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"joserfc","old_version":"1.7.4","new_version":"1.7.5","repository_url":"https://github.com/authlib/joserfc"},{"name":"prometheus-client","old_version":"0.25.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"numpy","old_version":"2.4.6","new_version":"2.5.3","repository_url":"https://github.com/numpy/numpy"},{"name":"ctranslate2","old_version":"4.8.1","new_version":"4.8.2","repository_url":"https://github.com/OpenNMT/CTranslate2"},{"name":"onnxruntime","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"yt-dlp","old_version":"2026.7.4","new_version":"2026.8.19","repository_url":"https://github.com/yt-dlp/yt-dlp"},{"name":"deepgram-sdk","old_version":"7.7.0","new_version":"7.8.1","repository_url":"https://github.com/deepgram/deepgram-python-sdk"},{"name":"assemblyai","old_version":"1.0.0","new_version":"1.3.0","repository_url":"https://github.com/AssemblyAI/assemblyai-python-sdk"},{"name":"azure-cognitiveservices-speech","old_version":"1.51.1","new_version":"1.51.2"},{"name":"boto3","old_version":"1.43.74","new_version":"1.43.89","repository_url":"https://github.com/boto/boto3"},{"name":"openai","old_version":"3.3.0","new_version":"3.8.0","repository_url":"https://github.com/openai/openai-python"},{"name":"presidio-anonymizer","old_version":"2.2.362","new_version":"2.2.364","repository_url":"https://github.com/data-privacy-stack/presidio"},{"name":"msal","old_version":"1.37.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.2","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"filelock","old_version":"3.32.4","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"onnxruntime-gpu","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"cuda-pathfinder","old_version":"1.6.1","new_version":"1.8.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"botocore","old_version":"1.43.75","new_version":"1.43.89","repository_url":"https://github.com/boto/botocore"},{"name":"lxml","old_version":"6.1.2","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"typer","old_version":"0.27.1","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"google-api-core","old_version":"2.35.0","new_version":"2.36.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.57.0","new_version":"2.57.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.75.2","new_version":"1.75.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"protobuf","old_version":"7.36.0","new_version":"7.36.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"regex","old_version":"2026.8.31","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"import-linter","old_version":"2.13","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"},{"name":"ipython","old_version":"9.16.1","new_version":"9.17.1","repository_url":"https://github.com/ipython/ipython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the backend group with 37 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.31` | `0.4.2` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.7.0` | `6.0.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.3` | `0.52.4` |\n| [websockets](https://github.com/python-websockets/websockets) | `17.0.1` | `17.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.19.1` | `1.19.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.13.5` |\n| [joserfc](https://github.com/authlib/joserfc) | `1.7.4` | `1.7.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.6` | `2.5.3` |\n| [ctranslate2](https://github.com/OpenNMT/CTranslate2) | `4.8.1` | `4.8.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | `2026.7.4` | `2026.8.19` |\n| [deepgram-sdk](https://github.com/deepgram/deepgram-python-sdk) | `7.7.0` | `7.8.1` |\n| [assemblyai](https://github.com/AssemblyAI/assemblyai-python-sdk) | `1.0.0` | `1.3.0` |\n| azure-cognitiveservices-speech | `1.51.1` | `1.51.2` |\n| [boto3](https://github.com/boto/boto3) | `1.43.74` | `1.43.89` |\n| [openai](https://github.com/openai/openai-python) | `3.3.0` | `3.8.0` |\n| [presidio-anonymizer](https://github.com/data-privacy-stack/presidio) | `2.2.362` | `2.2.364` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.37.0` | `1.38.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.32.4` | `3.32.5` |\n| [onnxruntime-gpu](https://github.com/microsoft/onnxruntime) | `1.28.0` | `1.29.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.6.1` | `1.8.1` |\n| [botocore](https://github.com/boto/botocore) | `1.43.75` | `1.43.89` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` |\n| [typer](https://github.com/fastapi/typer) | `0.27.1` | `0.27.2` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.35.0` | `2.36.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.57.0` | `2.57.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.2` | `1.75.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.0` | `7.36.1` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.8.31` | `2026.9.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.6` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.13` | `2.15` |\n| [ipython](https://github.com/ipython/ipython) | `9.16.1` | `9.17.1` |\n\n\nUpdates `langchain-community` from 0.3.31 to 0.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-community==0.4.2\u003c/h2\u003e\n\u003ch2\u003eSunsetting langchain-community\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003elangchain-community is being sunset\u003c/strong\u003e. See \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/674\"\u003elangchain-ai/langchain-community#674\u003c/a\u003e for details and guidance. Thank you to everyone who has contributed integrations, fixes, reviews, and maintenance over the years.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: modernize infra by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/402\"\u003elangchain-ai/langchain-community#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PMID from PubMedAPIWrapper utility by \u003ca href=\"https://github.com/davale88\"\u003e\u003ccode\u003e@​davale88\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/43\"\u003elangchain-ai/langchain-community#43\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egitlab api wrapper[patch]: fix create_file eats the first letter by \u003ca href=\"https://github.com/martra\"\u003e\u003ccode\u003e@​martra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/153\"\u003elangchain-ai/langchain-community#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate lancedb.py by \u003ca href=\"https://github.com/AmirBraham\"\u003e\u003ccode\u003e@​AmirBraham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/108\"\u003elangchain-ai/langchain-community#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrecting OpenSearchVectorStore documentation for AsyncClient import problem by \u003ca href=\"https://github.com/georg-wind\"\u003e\u003ccode\u003e@​georg-wind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/252\"\u003elangchain-ai/langchain-community#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test_duckduckdgo_search_api.py import by \u003ca href=\"https://github.com/theprashasst\"\u003e\u003ccode\u003e@​theprashasst\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/248\"\u003elangchain-ai/langchain-community#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typos. by \u003ca href=\"https://github.com/oumizx\"\u003e\u003ccode\u003e@​oumizx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/277\"\u003elangchain-ai/langchain-community#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect misleading CosmosDB connection string validation error message by \u003ca href=\"https://github.com/lasagna0\"\u003e\u003ccode\u003e@​lasagna0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/315\"\u003elangchain-ai/langchain-community#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix score threshold is zero scenario by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/398\"\u003elangchain-ai/langchain-community#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link of partition docs of \u003ccode\u003eunstructured\u003c/code\u003e package by \u003ca href=\"https://github.com/mhihasan\"\u003e\u003ccode\u003e@​mhihasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/354\"\u003elangchain-ai/langchain-community#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(loader): fix TextLoader doc string indentation by \u003ca href=\"https://github.com/vneogi199\"\u003e\u003ccode\u003e@​vneogi199\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/360\"\u003elangchain-ai/langchain-community#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed Syntax Error in Trino dialect by \u003ca href=\"https://github.com/saathwik-tk\"\u003e\u003ccode\u003e@​saathwik-tk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/399\"\u003elangchain-ai/langchain-community#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: message line regex by \u003ca href=\"https://github.com/martinschaer\"\u003e\u003ccode\u003e@​martinschaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/196\"\u003elangchain-ai/langchain-community#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: remove integration as the product has changed by \u003ca href=\"https://github.com/Xe\"\u003e\u003ccode\u003e@​Xe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/159\"\u003elangchain-ai/langchain-community#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate sql_database.py to support materialized view by \u003ca href=\"https://github.com/groundrace\"\u003e\u003ccode\u003e@​groundrace\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/281\"\u003elangchain-ai/langchain-community#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRSS Feed Document Loader Publish Date Fallback by \u003ca href=\"https://github.com/mariomeyer\"\u003e\u003ccode\u003e@​mariomeyer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/219\"\u003elangchain-ai/langchain-community#219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: lint by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/405\"\u003elangchain-ai/langchain-community#405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): add auto-labelers by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/406\"\u003elangchain-ai/langchain-community#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cost by 1k tokens for sonnet 4.5 by \u003ca href=\"https://github.com/higorgardin\"\u003e\u003ccode\u003e@​higorgardin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/391\"\u003elangchain-ai/langchain-community#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Refactor query_builder to use limit method by \u003ca href=\"https://github.com/userNanni\"\u003e\u003ccode\u003e@​userNanni\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/377\"\u003elangchain-ai/langchain-community#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate document_loaders from rapidocr_onnxruntime to rapidocr by \u003ca href=\"https://github.com/athoik\"\u003e\u003ccode\u003e@​athoik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/375\"\u003elangchain-ai/langchain-community#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate Oracle AI Vector Search classes by \u003ca href=\"https://github.com/fileames\"\u003e\u003ccode\u003e@​fileames\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/283\"\u003elangchain-ai/langchain-community#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add default factory to api_wrapper of GoogleSerperRun by \u003ca href=\"https://github.com/duccm94\"\u003e\u003ccode\u003e@​duccm94\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/157\"\u003elangchain-ai/langchain-community#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[fix]: support spark x1 reasoning model's 'reasoning_content' field. by \u003ca href=\"https://github.com/vsxd\"\u003e\u003ccode\u003e@​vsxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/251\"\u003elangchain-ai/langchain-community#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use uuid1() instead of uuid4() for Cassandra TIMEUUID columns by \u003ca href=\"https://github.com/woohhan\"\u003e\u003ccode\u003e@​woohhan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/225\"\u003elangchain-ai/langchain-community#225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImport chat_models from langchain_community in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/198\"\u003elangchain-ai/langchain-community#198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Retrieve all Slack channels visible to the client by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/146\"\u003elangchain-ai/langchain-community#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: fix elevenlabs \u0026gt;=2.3.0 api change by \u003ca href=\"https://github.com/ebwood\"\u003e\u003ccode\u003e@​ebwood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/102\"\u003elangchain-ai/langchain-community#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: write image data to buffer before checking for empty BytesIO in image extraction by \u003ca href=\"https://github.com/mighoocool\"\u003e\u003ccode\u003e@​mighoocool\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/193\"\u003elangchain-ai/langchain-community#193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ealign SupabaseVectorStore ID handling with JS lib by \u003ca href=\"https://github.com/taishikato\"\u003e\u003ccode\u003e@​taishikato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/137\"\u003elangchain-ai/langchain-community#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(document_loaders): yt api as per latest version by \u003ca href=\"https://github.com/lokeshparab\"\u003e\u003ccode\u003e@​lokeshparab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/206\"\u003elangchain-ai/langchain-community#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add comprehensive routing support to OpenSearchVectorSearch by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/349\"\u003elangchain-ai/langchain-community#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(chat_models): parallel tool calls in ChatTongyi when incremental streaming output is enabled. by \u003ca href=\"https://github.com/TBice123123\"\u003e\u003ccode\u003e@​TBice123123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/111\"\u003elangchain-ai/langchain-community#111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(infra): remove unused \u003ccode\u003edataclasses-json\u003c/code\u003e dependency by \u003ca href=\"https://github.com/noirbee\"\u003e\u003ccode\u003e@​noirbee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/270\"\u003elangchain-ai/langchain-community#270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/408\"\u003elangchain-ai/langchain-community#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(agent_toolkits): Make \u003ccode\u003eWebClient\u003c/code\u003e injectable for Slack toolkit by \u003ca href=\"https://github.com/m1kl0sh\"\u003e\u003ccode\u003e@​m1kl0sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/145\"\u003elangchain-ai/langchain-community#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(document_loaders): add flexible timeout to \u003ccode\u003ePlaywrightURLLoader\u003c/code\u003e by \u003ca href=\"https://github.com/parthsompura\"\u003e\u003ccode\u003e@​parthsompura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/104\"\u003elangchain-ai/langchain-community#104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SSL verification option to recursive link fetching by \u003ca href=\"https://github.com/rajasblack\"\u003e\u003ccode\u003e@​rajasblack\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/46\"\u003elangchain-ai/langchain-community#46\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: some cleanup by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/412\"\u003elangchain-ai/langchain-community#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(azure): Fix key assignment logic by \u003ca href=\"https://github.com/yashovardhan99\"\u003e\u003ccode\u003e@​yashovardhan99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/418\"\u003elangchain-ai/langchain-community#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(vectorstores): add routing support for hybrid search by \u003ca href=\"https://github.com/yukiharada1228\"\u003e\u003ccode\u003e@​yukiharada1228\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/416\"\u003elangchain-ai/langchain-community#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enit: use american english by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/419\"\u003elangchain-ai/langchain-community#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(infra): clarify allowed scopes section in PR linting workflow by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/420\"\u003elangchain-ai/langchain-community#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update \u003ccode\u003eREADME.md\u003c/code\u003e by \u003ca href=\"https://github.com/mdrxy\"\u003e\u003ccode\u003e@​mdrxy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/422\"\u003elangchain-ai/langchain-community#422\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/langchain-ai/langchain-community/commit/7c10a5fa327f6aaaf7c932822a9e5d144891406e\"\u003e\u003ccode\u003e7c10a5f\u003c/code\u003e\u003c/a\u003e fix: bump deps and fix test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/0d3630d463521db776ef9f4d2f7d8eceab3d1fcc\"\u003e\u003ccode\u003e0d3630d\u003c/code\u003e\u003c/a\u003e fix: sunset package (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/3ade247a075de8a20b95bb48d897a067ee1fecb5\"\u003e\u003ccode\u003e3ade247\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/27c60bad4c17b0460d174abac0fb5d1ade0bfd51\"\u003e\u003ccode\u003e27c60ba\u003c/code\u003e\u003c/a\u003e chore(deps): bump langsmith from 0.7.31 to 0.8.4 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/666\"\u003e#666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/2e8d934934f79923c9349ca67ed21de4dc268033\"\u003e\u003ccode\u003e2e8d934\u003c/code\u003e\u003c/a\u003e chore(deps): bump jupyter-server from 2.17.0 to 2.18.0 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/f0b16c2a40cca43cc2aac13880d56d3f42ea89b1\"\u003e\u003ccode\u003ef0b16c2\u003c/code\u003e\u003c/a\u003e chore(deps): bump mistune from 3.2.0 to 3.2.1 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/bfbfe3f1822dfc0acc2a2999108ac7c721f4f8e2\"\u003e\u003ccode\u003ebfbfe3f\u003c/code\u003e\u003c/a\u003e chore(deps): update scikit-learn requirement from \u0026lt;2,\u0026gt;=1.2.2 to \u0026gt;=1.7.2,\u0026lt;2 in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/4cbef29068509f90e8284a56a51b4ec3c1fd3cd5\"\u003e\u003ccode\u003e4cbef29\u003c/code\u003e\u003c/a\u003e chore(deps): update hdbcli requirement from \u0026lt;3,\u0026gt;=2.19.21 to \u0026gt;=2.28.20,\u0026lt;3 in /...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/22377e1e92dfdda5424f4eba6d70e511075f8226\"\u003e\u003ccode\u003e22377e1\u003c/code\u003e\u003c/a\u003e chore(deps): update keybert requirement from \u0026gt;=0.8.5 to \u0026gt;=0.9.0 in /libs/comm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain-community/commit/c4dbaa2174bf743e2b6f6a74684c62786ecd6334\"\u003e\u003ccode\u003ec4dbaa2\u003c/code\u003e\u003c/a\u003e chore(deps): bump notebook from 7.5.4 to 7.5.6 in /libs/community (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.31...libs/community/v0.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.7.0 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.0.1 - Restore the PyLate prefix on prompted checkpoints, 80 documented multi-vector models\u003c/h2\u003e\n\u003cp\u003eThis patch release fixes a multi-vector loading bug: PyLate checkpoints that carry both a \u003ccode\u003e[Q]\u003c/code\u003e/\u003ccode\u003e[D]\u003c/code\u003e prefix and a text prompt lost the prefix, so they were encoded without a marker they were trained with. It also grows the documented multi-vector model tables from 51 checkpoints to 80.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==6.0.1\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==6.0.1\npip install sentence-transformers[onnx-gpu]==6.0.1\npip install sentence-transformers[onnx]==6.0.1\npip install sentence-transformers[openvino]==6.0.1\u003c/p\u003e\n\u003ch1\u003eMultimodal dependencies (optional):\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[image]==6.0.1\npip install sentence-transformers[audio]==6.0.1\npip install sentence-transformers[video]==6.0.1\u003c/p\u003e\n\u003ch1\u003eOr combine as needed:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers[train,onnx,image]==6.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eCompose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003ePyLate supports a prefix as well as prompt text, and Sentence Transformers assumed that these were mutually exclusive. However, the following three checkpoints carry both a prefix and a prompt, and were trained with the prefix prepended to the prompt text:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero\"\u003e\u003ccode\u003elightonai/ColBERT-Zero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-unsupervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-unsupervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://huggingface.co/lightonai/ColBERT-Zero-supervised\"\u003e\u003ccode\u003elightonai/ColBERT-Zero-supervised\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePyLate trained these checkpoints on \u003ccode\u003e[CLS] [Q] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] [D] search_document: ...\u003c/code\u003e, but Sentence Transformers dropped the prefix and encoded them as \u003ccode\u003e[CLS] search_query: ...\u003c/code\u003e and \u003ccode\u003e[CLS] search_document: ...\u003c/code\u003e. After the fix, the performance of the \u003ccode\u003eColBERT-Zero\u003c/code\u003e model improved from 0.6569 NDCG@10 to 0.6824 on the NanoBEIR benchmark. To my knowledge, only these 3 checkpoints used both a prefix and a prompt, so this is the only case where the bug would have affected you.\u003c/p\u003e\n\u003ch2\u003eForward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eRouter.forward\u003c/code\u003e has always passed \u003ccode\u003etask\u003c/code\u003e down to the routed module, but \u003ccode\u003eRouter.preprocess\u003c/code\u003e did not, so anything a module does with the task at preprocessing time did nothing behind a \u003ccode\u003eRouter\u003c/code\u003e: \u003ccode\u003equery_length\u003c/code\u003e and \u003ccode\u003edocument_length\u003c/code\u003e caps, \u003ccode\u003equery_expansion\u003c/code\u003e, and the chat-template \u003ccode\u003etask\u003c/code\u003e keyword. No released checkpoint combines a \u003ccode\u003eRouter\u003c/code\u003e with those settings, so this is a latent bug rather than one you are likely to have hit. It would have affected anyone building such a model themselves, with no error to indicate it.\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe multi-vector \u003ca href=\"https://sbert.net/docs/multi_vector_encoder/pretrained_models.html\"\u003epretrained models tables\u003c/a\u003e grew from 29 text and 22 visual document retrieval checkpoints to 38 and 42 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3963\"\u003e#3963\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e), with \u003ccode\u003erevision\u003c/code\u003e and \u003ccode\u003etrust_remote_code\u003c/code\u003e notes refreshed as upstream pull requests merged (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDocumented which Hub tag to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e), and linked the Multi-Vector Encoder blogposts from the docs (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded MultiVectorEncoder to the Agent Skill README and refreshed the SauerkrautLM scores (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3955\"\u003e#3955\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCorrected the minimum versions in the README (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3952\"\u003e#3952\u003c/a\u003e). It still recommended PyTorch 1.11.0+ and \u003ccode\u003etransformers\u003c/code\u003e v4.41.0+, where v6.0 requires PyTorch 2.2+ and \u003ccode\u003etransformers\u003c/code\u003e v5.0+. This is the text rendered as the PyPI project description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM scores by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3955\"\u003ehuggingface/sentence-transformers#3955\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the README dependency versions by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3952\"\u003ehuggingface/sentence-transformers#3952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add more MultiVectorEncoder models to the pretrained models tables by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3963\"\u003ehuggingface/sentence-transformers#3963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Clarify which Hub tags to filter on for each model type by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3964\"\u003ehuggingface/sentence-transformers#3964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Link the Multi-Vector Encoder blogposts by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3966\"\u003ehuggingface/sentence-transformers#3966\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/huggingface/sentence-transformers/commit/b0acd1a4d22ba2bc10072868ddea7612561c9424\"\u003e\u003ccode\u003eb0acd1a\u003c/code\u003e\u003c/a\u003e Update README installation versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9b415ac93b586400258ac9876c81ce28c36547ba\"\u003e\u003ccode\u003e9b415ac\u003c/code\u003e\u003c/a\u003e Release v6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cc0669cea57c834c651f001e3cb07b6fc847f147\"\u003e\u003ccode\u003ecc0669c\u003c/code\u003e\u003c/a\u003e Add/update revisions for pretrained MVE models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f8390f466c9d127cd51dd41805557adaab09d472\"\u003e\u003ccode\u003ef8390f4\u003c/code\u003e\u003c/a\u003e [docs] Refresh the MultiVectorEncoder pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3969\"\u003e#3969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/4b517229c1dc17ead6c2a61b3d248f62fe4738eb\"\u003e\u003ccode\u003e4b51722\u003c/code\u003e\u003c/a\u003e [fix] Compose the PyLate prefix with the saved prompt (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/e99c4a9f2422c285cd2d286aeda1af237eadd01d\"\u003e\u003ccode\u003ee99c4a9\u003c/code\u003e\u003c/a\u003e [fix] Forward \u003ccode\u003etask\u003c/code\u003e to routed modules in \u003ccode\u003eRouter.preprocess\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/5d2ec939e960d85afe638bba87523926c63ab263\"\u003e\u003ccode\u003e5d2ec93\u003c/code\u003e\u003c/a\u003e [docs] Link the Multi-Vector Encoder blogposts (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9c5de2aa8432d7d150e35a7cd4383a39a13e307b\"\u003e\u003ccode\u003e9c5de2a\u003c/code\u003e\u003c/a\u003e [docs] Clarify which Hub tags to filter on for each model type (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/83680bdf460229a41dd3bf07ed80b5a65d29a430\"\u003e\u003ccode\u003e83680bd\u003c/code\u003e\u003c/a\u003e [docs] Add more MultiVectorEncoder models to the pretrained models tables (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1a43278abe510ca9011fdd0e698c58470ef830eb\"\u003e\u003ccode\u003e1a43278\u003c/code\u003e\u003c/a\u003e docs: Add MultiVectorEncoder to the skills README, refresh the SauerkrautLM s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.7.0...v6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.3 to 0.141.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.141.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for background tasks and headers from dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16105\"\u003e#16105\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📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16104\"\u003e#16104\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.141.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more convenient with \u003ccode\u003efastapi dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16102\"\u003e#16102\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.140.13\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003estatus_code\u003c/code\u003e being ignored for SSE and JSONL streaming endpoints. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15937\"\u003e#15937\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix \u003ccode\u003eformat_sse_event\u003c/code\u003e docstring rendering of \u003ccode\u003e\\n\\n\u003c/code\u003e terminator. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15613\"\u003e#15613\u003c/a\u003e by \u003ca href=\"https://github.com/AshNicolus\"\u003e\u003ccode\u003e@​AshNicolus\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add API reference page for fastapi.sse. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15930\"\u003e#15930\u003c/a\u003e by \u003ca href=\"https://github.com/SAURABHSALVE\"\u003e\u003ccode\u003e@​SAURABHSALVE\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.12\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix line splitting in \u003ccode\u003eformat_sse_event\u003c/code\u003e to comply with SSE spec. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15515\"\u003e#15515\u003c/a\u003e by \u003ca href=\"https://github.com/Zawwarsami16\"\u003e\u003ccode\u003e@​Zawwarsami16\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.11\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eresponse_model_*\u003c/code\u003e params ignored for non-generator endpoints with \u003ccode\u003eIterable[..]\u003c/code\u003e return type. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15093\"\u003e#15093\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.140.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling sequences with nested Annotated types. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14874\"\u003e#14874\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Accept any base test failure as regression. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16092\"\u003e#16092\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🐛 Preserve pytest exit code in regression check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16091\"\u003e#16091\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✅ Test PR regressions against base code. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16090\"\u003e#16090\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.140.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eexclude_defaults\u003c/code\u003e not propagated to dict keys and values in \u003ccode\u003ejsonable_encoder\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/16043\"\u003e#16043\u003c/a\u003e by \u003ca href=\"https://github.com/MBGrao\"\u003e\u003ccode\u003e@​MBGrao\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/95f8322ee1dcda7ceace7b1c4f6c9915b36d748f\"\u003e\u003ccode\u003e95f8322\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16106\"\u003e#16106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f137944c435cff4e4b30ea7d12855ea88ddb868c\"\u003e\u003ccode\u003ef137944\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d62354434b2e508fe89024213b220ca8e67dea5e\"\u003e\u003ccode\u003ed623544\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for background tasks and headers from dependencies in `app.fron...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d211b9c1009d577f39fa2b19b10d9a93a72a0ed\"\u003e\u003ccode\u003e1d211b9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a1f8768411e62093e70ce142ea10863a485643c\"\u003e\u003ccode\u003e8a1f876\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003eFASTAPI_ENV\u003c/code\u003e in FastAPI CLI guide (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16104\"\u003e#16104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7e7b651d6946c07cc9f675f39c9501d08319e57\"\u003e\u003ccode\u003ec7e7b65\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.141.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16103\"\u003e#16103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6bceb84053eb2405e9c000aad30ea13367b5ee32\"\u003e\u003ccode\u003e6bceb84\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5429fed84e84e32672c25a953eca3429b841ce90\"\u003e\u003ccode\u003e5429fed\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eapp.frontend(check_dir=\u0026quot;auto\u0026quot;)\u003c/code\u003e, to make local development more conven...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/628663f4f899c465da423bce681c7adf9a218948\"\u003e\u003ccode\u003e628663f\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.140.13 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/16096\"\u003e#16096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0b54fd00273019034dd30b120ac842e65d80690e\"\u003e\u003ccode\u003e0b54fd0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.3...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.52.3 to 0.52.4\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.52.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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.52.3...0.52.4\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\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.52.4 (August 18, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eDate\u003c/code\u003e headers from accepted WebSocket handshakes with \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/3078\"\u003e#3078\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/8988c23704fc373c9206cca53ec57dd8ad7f44a5\"\u003e\u003ccode\u003e8988c23\u003c/code\u003e\u003c/a\u003e Stabilize macOS Python 3.13 signal shutdown tests (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/898ddca9254b53c5bf7a6ee509756704caaa949f\"\u003e\u003ccode\u003e898ddca\u003c/code\u003e\u003c/a\u003e Update PyPI publish action to version 1.14.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3869f8aac2bdd040fa3fbe564e1dad67e2637641\"\u003e\u003ccode\u003e3869f8a\u003c/code\u003e\u003c/a\u003e Restore Mermaid diagram rendering (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/64148a9c574e1eb87d3d09b3ce4c256606f8d973\"\u003e\u003ccode\u003e64148a9\u003c/code\u003e\u003c/a\u003e Version 0.52.4 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3079\"\u003e#3079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9e9e5691bd14d5c4cd66d9bd76c7730bc48461a2\"\u003e\u003ccode\u003e9e9e569\u003c/code\u003e\u003c/a\u003e docs: correct release example PR number (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b783dacab50b9d6767b0cf65826b2dc3aae21909\"\u003e\u003ccode\u003eb783dac\u003c/code\u003e\u003c/a\u003e Remove duplicate Date header from SansIO WebSocket handshakes (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/27019b2a4b1fa6d68a289fcf7d738fbdc6ee4e5d\"\u003e\u003ccode\u003e27019b2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 11 update...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1b6427311bb84a15addee688f6d41d96e33f8b0a\"\u003e\u003ccode\u003e1b64273\u003c/code\u003e\u003c/a\u003e Fix a typo in index.md (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `websockets` from 17.0.1 to 17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e17.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/e87ea9be0373edd5065b5e94dfa714cfde23023b\"\u003e\u003ccode\u003ee87ea9b\u003c/code\u003e\u003c/a\u003e Release version 17.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/caf68ab866350ab43305bc0a2ce28e4c845b90ab\"\u003e\u003ccode\u003ecaf68ab\u003c/code\u003e\u003c/a\u003e Minor whitespace normalization.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/f4c73b76c74044c53f700360792448ee0328983b\"\u003e\u003ccode\u003ef4c73b7\u003c/code\u003e\u003c/a\u003e Accept pathlib.Path objects in path arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/b1e4a144d1824ec4dbd2416489691bbe212a1be8\"\u003e\u003ccode\u003eb1e4a14\u003c/code\u003e\u003c/a\u003e Clarify when the new asyncio implementation became the default.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c7cc7ed3508c3ce082801994e7587ac694758102\"\u003e\u003ccode\u003ec7cc7ed\u003c/code\u003e\u003c/a\u003e Move process_exception to the Sans-I/O layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/2543503f5e6633e79afb20992511b12ef2b7d663\"\u003e\u003ccode\u003e2543503\u003c/code\u003e\u003c/a\u003e Support reconnecting in the threading implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1c8fb090d966c358dcb4069b8c71c13969d1cec0\"\u003e\u003ccode\u003e1c8fb09\u003c/code\u003e\u003c/a\u003e Follow redirects in the sync implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/1f7f0e537233ac82e4ca51921678963c696c8c08\"\u003e\u003ccode\u003e1f7f0e5\u003c/code\u003e\u003c/a\u003e Deprecate calling connect() directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/c06d5c566b04113405272230856de669e8534e74\"\u003e\u003ccode\u003ec06d5c5\u003c/code\u003e\u003c/a\u003e Support overriding host/post in the sync client.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/885e69bc1a218566bb0ad653c2c326e80245ab6a\"\u003e\u003ccode\u003e885e69b\u003c/code\u003e\u003c/a\u003e Add tests for connecting without a context manager.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/17.0.1...17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.19.1 to 1.19.2\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.19.2\u003c/h1\u003e\n\u003cp\u003eReleased: September 4, 2026\u003c/p\u003e\n\u003ch2\u003echanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[changed] [autogenerate]\u003c/strong\u003e The autogenerate plugin for CHECK constraint detection by name, added in\n1.19.0. for \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/508\"\u003e#508\u003c/a\u003e, is no longer enabled by default.  It has been\nrenamed from \u003ccode\u003ealembic.autogenerate.checkconstraint_byname\u003c/code\u003e to\n\u003ccode\u003ealembic.ext.checkconstraint_byname\u003c/code\u003e and no longer matches on the\n\u003ccode\u003e\u0026quot;alembic.autogenerate.*\u0026quot;\u003c/code\u003e wildcard, which remains the default plugin\nspecification.  The previous name will still function as well if placed in\nthe plugins list explicitly,  both to enable the plugin and within a\n\u003ccode\u003e\u0026quot;~\u0026quot;\u003c/code\u003e exclusion, so that an \u003ccode\u003eenv.py\u003c/code\u003e written against 1.19.0 or 1.19.1\nrequires no change.\u003c/p\u003e\n\u003cp\u003eThe plugin is now recommended only for schemas that ensure the naming of\nall constraints using a client side naming convention, otherwise there's a\npersistent risk of false positives. See\n\u003ccode\u003eautogenerate_check_constraints\u003c/code\u003e for background on things to be aware\nof when using this plugin.\u003c/p\u003e\n\u003cp\u003eAs part of this change \u0026quot;type bound\u0026quot; CHECK constraints, which include\nconstraints generated for the \u003ccode\u003eBoolean\u003c/code\u003e and \u003ccode\u003eEnum\u003c/code\u003e datatypes when the\n\u003ccode\u003ecreate_constraint\u003c/code\u003e parameter is set to True, are no longer ignored in\nthe metadata side, so that normal name-based matching can occur for\nthese constraints.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1859\"\u003e#1859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate] [batch]\u003c/strong\u003e The target of a \u003ccode\u003e~sqlalchemy.schema.ForeignKey\u003c/code\u003e is now located\nusing the \u003ccode\u003eForeignKey.target_tokens\u003c/code\u003e and\n\u003ccode\u003eForeignKey.target_table_key\u003c/code\u003e accessors added in SQLAlchemy 2.1, rather\nthan by splitting the dotted string form of that target on \u003ccode\u003e\u0026quot;.\u0026quot;\u003c/code\u003e.  As a\ndot inside a schema, table or column name cannot be told apart from the\nseparator between those names, a foreign key whose target name contained\na dot was previously mis-parsed by autogenerate rendering as well as by\nbatch migrations.  The dotted string continues to be split when running\nagainst SQLAlchemy 2.0, where these accessors are not present.  Thanks to\nGyanu Mayank for the initial pull request.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1860\"\u003e#1860\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.13.4 to 2.13.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/pydantic/pydantic/blob/v2.13.5/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.5 (2026-08-28)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.5\"\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\u003eAllow reuse of validators when plugins are set by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13535\"\u003e#13535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal on some \u003ccode\u003epydantic-core\u003c/code\u003e struct fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13624\"\u003e#13624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13629\"\u003e#13629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCount validated model fields once in smart unions by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13731\"\u003e#13731\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/001dea020e0809844e5b17666432c9135a976f46\"\u003e\u003ccode\u003e001dea0\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epypa/gh-action-pypi-publish\u003c/code\u003e action to v1.14.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/558379fee957fad25858e33596146c72d5674843\"\u003e\u003ccode\u003e558379f\u003c/code\u003e\u003c/a\u003e Bump twine to v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2cfd5d3d2ae721ea882c045f83b7f7a4003aab01\"\u003e\u003ccode\u003e2cfd5d3\u003c/code\u003e\u003c/a\u003e Do not check for docs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a735bee5c64e1fe50785c376adaf1275e752b8ac\"\u003e\u003ccode\u003ea735bee\u003c/code\u003e\u003c/a\u003e Fix more Clippy lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7eed4a16b87afaced4d0eafae230453de3410d64\"\u003e\u003ccode\u003e7eed4a1\u003c/code\u003e\u003c/a\u003e Fix Clippy 0.1.95 warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b353bbb20a4989b4c033e2be2b4a40d36178b16a\"\u003e\u003ccode\u003eb353bbb\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/63d2cccd6e760da6bbc7fe81a53cb2bde3768f5e\"\u003e\u003ccode\u003e63d2ccc\u003c/code\u003e\u003c/a\u003e Count validated model fields once in smart unions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a53ec2ed342fda4e6aa3684399d04ea57be9a6e4\"\u003e\u003ccode\u003ea53ec2e\u003c/code\u003e\u003c/a\u003e Speed up PyPy CI tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d65e0f96e890ca82f4b66a15d5b3bd65af2c661c\"\u003e\u003ccode\u003ed65e0f9\u003c/code\u003e\u003c/a\u003e Workaround circular import error in Mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/47a6dbf8ad6216211bd0df6ec5c2c6c6ed905b72\"\u003e\u003ccode\u003e47a6dbf\u003c/code\u003e\u003c/a\u003e Fix missing GC traversal in \u003ccode\u003epydantic-core\u003c/code\u003e for \u003ccode\u003eGeneralFieldsSerializer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.4...v2.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `joserfc` from 1.7.4 to 1.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/joserfc/releases\"\u003ejoserfc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003ch3\u003e   🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd max_recipients on JWERegistry  -  by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df\"\u003e\u003c!-- raw HTML omitted --\u003e(d6dc8)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore unknown kty in KeySet.import_key_set (RFC 7517 §5)  -  by \u003ca href=\"https://github.com/RalphBragg\"\u003e\u003ccode\u003e@​RalphBragg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003eauthlib/joserfc#103\u003c/a\u003e \u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd363\"\u003e\u003c!-- raw HTML omitted --\u003e(4dcd3)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\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/joserfc/blob/main/docs/changelog.rst\"\u003ejoserfc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on August 29, 2026\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJWK\u003c/strong\u003e: Ignore keys with unknown \u003ccode\u003ekty\u003c/code\u003e values when importing a key set.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJWE\u003c/strong\u003e: Add \u003ccode\u003emax_recipients\u003c/code\u003e to \u003ccode\u003eJWERegistry\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/joserfc/commit/357c319119773c021bc8da433bdf31e42f77974b\"\u003e\u003ccode\u003e357c319\u003c/code\u003e\u003c/a\u003e chore: release 1.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/d6dc8df6c7609277e741069d3733e43996c1cd17\"\u003e\u003ccode\u003ed6dc8df\u003c/code\u003e\u003c/a\u003e feat: add max_recipients on JWERegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/26a10275e88276184f91ae2a6409647bfac7fea5\"\u003e\u003ccode\u003e26a1027\u003c/code\u003e\u003c/a\u003e docs: update sponsors link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/joserfc/commit/4dcd3635c65298d26869bac382aaf1435def68e1\"\u003e\u003ccode\u003e4dcd363\u003c/code\u003e\u003c/a\u003e fix: ignore unknown kty in KeySet.import_key_set (RFC 7517 §5) (\u003ca href=\"https://redirect.github.com/authlib/joserfc/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/joserfc/compare/1.7.4...1.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.25.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose measured duration on Timer context manager by \u003ca href=\"https://github.com/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse specific exception for duplicate timeseries by \u003ca href=\"https://github.com/kajinamit\"\u003e\u003ccode\u003e@​kajinamit\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1074\"\u003eprometheus/client_python#1074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake clear() a no-op for label-less metrics (fixes \u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/707\"\u003e#707\u003c/a\u003e) by \u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1184\"\u003eprometheus/client_python#1184\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse object instead of Any for labels() parameters by \u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TLS version parameters for start_wsgi_server by \u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Enum arguments before registering the collector by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not emit a leading zero in floatToGoString exponents \u0026gt;= 10 by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1190\"\u003eprometheus/client_python#1190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make test suite pass on Windows and Python 3.12+ by \u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse the native histogram sum as a float by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1192\"\u003eprometheus/client_python#1192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove nameless collectors from the registry on unregister by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1191\"\u003eprometheus/client_python#1191\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix operator precedence allowing exemplars on any metric type by \u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1188\"\u003eprometheus/client_python#1188\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/vokracko\"\u003e\u003ccode\u003e@​vokracko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1166\"\u003eprometheus/client_python#1166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ompathakbaap\"\u003e\u003ccode\u003e@​ompathakbaap\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1183\"\u003eprometheus/client_python#1183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gregoiredx\"\u003e\u003ccode\u003e@​gregoiredx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1186\"\u003eprometheus/client_python#1186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vyzigold\"\u003e\u003ccode\u003e@​vyzigold\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1178\"\u003eprometheus/client_python#1178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sean-kim05\"\u003e\u003ccode\u003e@​sean-kim05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1189\"\u003eprometheus/client_python#1189\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MelvinjoseC\"\u003e\u003ccode\u003e@​MelvinjoseC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1185\"\u003eprometheus/client_python#1185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.25.0...v0.26.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/prometheus/client_python/commit/9b6b971f903e7a08f88da5a95048b7a2a28f55a5\"\u003e\u003ccode\u003e9b6b971\u003c/code\u003e\u003c/a\u003e Release v0.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb072c2d312bd55cce11f27e7efbc1b0104e2a56\"\u003e\u003ccode\u003efb072c2\u003c/code\u003e\u003c/a\u003e Fix operator precedence allowing exemplars on any metric type (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1188\"\u003e#1188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6e22fb551bdc9b4d81e73791dc1644cca2221bb1\"\u003e\u003ccode\u003e6e22fb5\u003c/code\u003e\u003c/a\u003e Remove nameless collectors from the registry on unregister (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/5b094790a85d8d024b442c7adea9b0ca5ccd8335\"\u003e\u003ccode\u003e5b09479\u003c/code\u003e\u003c/a\u003e Parse the native histogram sum as a float (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/769b4150e0970f664095cba30e872dbac45ba9b0\"\u003e\u003ccode\u003e769b415\u003c/code\u003e\u003c/a\u003e fix: make test suite pass on Windows and Python 3.12+ (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d0b497ffe069865537e55af52cb00c329d58a6f0\"\u003e\u003ccode\u003ed0b497f\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1195\"\u003e#1195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/75603d7871d6343ca3118134613ea07fc06205ee\"\u003e\u003ccode\u003e75603d7\u003c/code\u003e\u003c/a\u003e Update common Prometheus files (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1194\"\u003e#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/fb2351fe0463581b85ac38f7fc870f2c564b6795\"\u003e\u003ccode\u003efb2351f\u003c/code\u003e\u003c/a\u003e Do not emit a leading zero in floatToGoString exponents \u0026gt;= 10 (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1190\"\u003e#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a39a697c805576781da71f70d1aa78c972ba9288\"\u003e\u003ccode\u003ea39a697\u003c/code\u003e\u003c/a\u003e Validate Enum arguments before registering the collector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a96f6f4bc00eeaa97827b8d49be8ce9c434b5a27\"\u003e\u003ccode\u003ea96f6f4\u003c/code\u003e\u003c/a\u003e Add TLS version parameters for start_wsgi_server (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.25.0...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.6 to 2.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.5.3 (Sep 6, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.5.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2\nrelease. Apart from the usual bug and maintenance work, there are a number of\nStringDType related fixes for problems discovered during the ongoing string\nwork in the main branch.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.12-3.15\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCasting a fixed-width byte string array (\u003ccode\u003enp.bytes_\u003c/code\u003e) to \u003ccode\u003eStringDType\u003c/code\u003e\nnow raises \u003ccode\u003eTypeError\u003c/code\u003e when the bytes are not valid UTF-8. Previously the\ninvalid bytes were stored as-is and later caused undefined behavior in\nstring operations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32296\"\u003egh-32296\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMaskedArray._fill_value\u003c/code\u003e would become stale when ufuncs that change dtype\nleft the result holding a fill_value typed for the old dtype. The mismatch\nwas silent until something later called \u003ccode\u003e_check_fill_value\u003c/code\u003e, such as\n\u003ccode\u003e.view()\u003c/code\u003e, and then a \u003ccode\u003eTypeError\u003c/code\u003e would be raised. Now, when the copied\nfill_value is no longer valid for the new dtype, fall back to the\ndefault fill_value for that dtype instead of propagating the stale value.\nThis may raise a \u003ccode\u003eComplexWarning\u003c/code\u003e if the fill_value is complex and the\nnew dtype is real.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32423\"\u003egh-32423\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIason Krommydas\u003c/li\u003e\n\u003cli\u003eJames Davies +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaanas Arora\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eShikhar Goel +\u003c/li\u003e\n\u003cli\u003eYeonho Kim +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 27 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/32235\"\u003e#32235\u003c/a\u003e: MAINT: Prepare 2.5.x for further development\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/numpy/numpy/commit/dd88c0c19b54ad9ed3533224221285bf0873249a\"\u003e\u003ccode\u003edd88c0c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32511\"\u003e#32511\u003c/a\u003e from charris/prepare-2.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/edcac6acc392f4010933ee83e8a4769a7cfe92c5\"\u003e\u003ccode\u003eedcac6a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.5.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fd4d908aff89773ead13f7c6a0ab31153f14439e\"\u003e\u003ccode\u003efd4d908\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32509\"\u003e#32509\u003c/a\u003e from charris/backport-32496\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/65bb1da13d0ee784be84d173b86784f0d64bdaca\"\u003e\u003ccode\u003e65bb1da\u003c/code\u003e\u003c/a\u003e BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32496\"\u003e#32496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/294956e85dfaea149aada1278c2ed6be0f6f28c8\"\u003e\u003ccode\u003e294956e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32506\"\u003e#32506\u003c/a\u003e from charris/backport-32503\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/26428d9a3f5ab4f604b326347e3a9c6dcc00c1cb\"\u003e\u003ccode\u003e26428d9\u003c/code\u003e\u003c/a\u003e DOC: fix scipy docs links in intersphinx mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32507\"\u003e#32507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5fab1cbc6aa9e119d9f931243a56c6fbca989476\"\u003e\u003ccode\u003e5fab1cb\u003c/code\u003e\u003c/a\u003e DOC: use static scipy doc site for intershpinx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32503\"\u003e#32503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7beed2f7e9a24e493a04ff7e2eb1db0d7f9c50e6\"\u003e\u003ccode\u003e7beed2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32481\"\u003e#32481\u003c/a\u003e from ngoldbaum/stringdtype-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8972f70798a2ba1bb4557157982fd6001906f993\"\u003e\u003ccode\u003e8972f70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32478\"\u003e#32478\u003c/a\u003e from charris/backport-32466\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/ab1b58902a868d4151ef3cf8dbeb91d8a1924fa4\"\u003e\u003ccode\u003eab1b589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/32477\"\u003e#32477\u003c/a\u003e from charris/backport-32423\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.6...v2.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ctranslate2` from 4.8.1 to 4.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases\"\u003ectranslate2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.8.2\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://github.com/Anai-Guo\"\u003e\u003ccode\u003e@​Anai-Guo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix out-of-bounds reads in StorageView index validation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2073\"\u003e#2073\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Nathan Keys (Halo Forge Labs)\u003c/li\u003e\n\u003cli\u003eUpdate cxxopts to v3.3.1 for GCC 15 compatibility (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2084\"\u003e#2084\u003c/a\u003e) by \u003ca href=\"https://github.com/bekard\"\u003e\u003ccode\u003e@​bekard\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate model variable sizes before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2091\"\u003e#2091\u003c/a\u003e) by \u003ca href=\"https://github.com/jordimas\"\u003e\u003ccode\u003e@​jordimas\u003c/code\u003e\u003c/a\u003e, reported by Hyeonbell\u003c/li\u003e\n\u003cli\u003eCheck StorageView reserve byte size before allocation (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2094\"\u003e#2094\u003c/a\u003e) by \u003ca href=\"https://github.com/infinityscroll\"\u003e\u003ccode\u003e@​infinityscroll\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the runtime dependency on setuptools (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2096\"\u003e#2096\u003c/a\u003e) by \u003ca href=\"https://github.com/Ravencentric\"\u003e\u003ccode\u003e@​Ravencentric\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/OpenNMT/CTranslate2/blob/master/CHANGELOG.md\"\u003ectranslate2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/OpenNMT/CTranslate2/releases/tag/v4.8.2\"\u003ev4.8.2\u003c/a\u003e (2026-08-31)\u003c/h2\u003e\n\u003ch3\u003eFixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImport Python converters and specs lazily to avoid loading torch for inference-only use (\u003ca href=\"https://redirect.github.com/OpenNMT/CTranslate2/issues/2080\"\u003e#2080\u003c/a\u003e) by \u003ca href=\"https://gith...\n\n_Description has been truncated_","html_url":"https://github.com/attevon-llc/OpenTranscribe/pull/902","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/attevon-llc%2FOpenTranscribe/issues/902","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/902/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-08T04:07:45.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5381886127","node_id":"PR_kwDOBBkQZs8AAAABCnCfKQ","number":4704,"state":"closed","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-12T19:37:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T04:07:45.000Z","updated_at":"2026-09-12T19:37:22.000Z","time_to_close":401375,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=pip\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/aliavni/incubator-superset/pull/4704","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliavni%2Fincubator-superset/issues/4704","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4704/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-08T03:30:40.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5381618145","node_id":"PR_kwDOMkdPVc8AAAABCm0q0w","number":1001,"state":"closed","title":"Bump the minor-and-patch-updates group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-15T03:28:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T03:30:40.000Z","updated_at":"2026-09-15T03:28:56.000Z","time_to_close":604694,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch-updates","update_count":7,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"lxml","old_version":"6.1.1","new_version":"6.1.2","repository_url":"https://github.com/lxml/lxml"},{"name":"regex","old_version":"2026.7.19","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"faker","old_version":"40.36.0","new_version":"40.37.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest-benchmark","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"cryptography","old_version":"50.0.0","new_version":"50.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"ruff","old_version":"0.16.3","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch-updates group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.1` | `6.1.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.3` |\n| [faker](https://github.com/joke2k/faker) | `40.36.0` | `40.37.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.5` |\n\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.1.1 to 6.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.2 (2026-08-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#526: Some build files were missing in the sdist.\nPatch by Nicola Soranzo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome minor corrections for error handling cases.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt with Cython 3.2.9.\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/lxml/lxml/commit/f2874e9008c83d2d26e0b7292772eb74d2b83ce3\"\u003e\u003ccode\u003ef2874e9\u003c/code\u003e\u003c/a\u003e Update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/687a295a4c19288b95ec1b74c31a620acaabdf9d\"\u003e\u003ccode\u003e687a295\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.8 from windows-arm builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/acadc56553ff74e6ea296158e118b08ac6ec9f4b\"\u003e\u003ccode\u003eacadc56\u003c/code\u003e\u003c/a\u003e Build: Remove outdated build target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/59f93eb420a988bc61e7c5b8f4d97869c0536be7\"\u003e\u003ccode\u003e59f93eb\u003c/code\u003e\u003c/a\u003e Build: Split old-Linux and other-Py3.8 builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/923df83ed6a40ca5aab267b1c3fe073ff13a00ab\"\u003e\u003ccode\u003e923df83\u003c/code\u003e\u003c/a\u003e Build: Fix manylinux2014 build.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/975cc83e4626117e36adb6d336ac9a6f6cc0ca42\"\u003e\u003ccode\u003e975cc83\u003c/code\u003e\u003c/a\u003e Build: Fix Px3.8 build setup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/09e5d3e968f380d7a790c2b47f59f7937e00942e\"\u003e\u003ccode\u003e09e5d3e\u003c/code\u003e\u003c/a\u003e Build: Fix cibuildwheel version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/998cf504a3b0da7f316861c5a552c5c16069d91f\"\u003e\u003ccode\u003e998cf50\u003c/code\u003e\u003c/a\u003e Build: Build Py3.8 wheels only once, not in every build job.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/55670370cd68117ff2b3b71e0f20a7f275d1baeb\"\u003e\u003ccode\u003e5567037\u003c/code\u003e\u003c/a\u003e Build: Exclude Py3.15 from 32bit builds.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/904db40b04ef590ae1ca8fc84be863fc0f8196dc\"\u003e\u003ccode\u003e904db40\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel to include Py3.15.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.1.1...lxml-6.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.7.19 to 2026.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.9.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer supports building for free-threaded Python 3.13.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNew version of cibuildwheel no longer needs nor supports cpython-freethreading option.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated cibuildwheel.\nSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 611: Heap out-of-bounds write at compile time\nGit issue 612: count_one() size underflow through the stale required-string cache\nGit issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\nGit issue 614: build_GROUP() does not propagate the match direction\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.8.12\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSupport Python 3.15.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 607: SIGSEGV: NULL pointer dereference in `basic_match()` when `(?R)`/`(?0)` recursion is used inside a fuzzy-matching quantifier\nGit issue 608: SIGSEGV: out-of-bounds read in `bytes1_char_at()` with `DOTALL` + a fuzzy constraint + `(?r)` reverse-direction matching\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.7.10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eClarified that the POSIX flag makes it look for only the longest overall match.\n\u003cp\u003eGit issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threading-safe\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.6.28\u003c/p\u003e\n\u003cp\u003eGit issue 604: regex fails on free-threading python because setlocale is not thread-safe\u003c/p\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/57f366fdbd9b8346d3b1a95b99cd81a9e91db367\"\u003e\u003ccode\u003e57f366f\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer supports building for free-threaded Pyt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/a1d72bace2f7222e310b32c595771686a59d0388\"\u003e\u003ccode\u003ea1d72ba\u003c/code\u003e\u003c/a\u003e New version of cibuildwheel no longer needs nor supports cpython-freethreadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/c8d0aa48f52feb6512c3a3ac6e02f4c7ec6363e0\"\u003e\u003ccode\u003ec8d0aa4\u003c/code\u003e\u003c/a\u003e Updated cibuildwheel. Support Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b283bb2b038cef571bfe49b2a76415cf4005ddfc\"\u003e\u003ccode\u003eb283bb2\u003c/code\u003e\u003c/a\u003e Updated version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5268ae7bd178828d6b710125a8089e548ca51b61\"\u003e\u003ccode\u003e5268ae7\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/9398a6da5630aa9af67775e95802d2c5625606cd\"\u003e\u003ccode\u003e9398a6d\u003c/code\u003e\u003c/a\u003e Git issue 614: build_GROUP() does not propagate the match direction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b77694aec629ca66bfe416e5f83561d52bd08ae8\"\u003e\u003ccode\u003eb77694a\u003c/code\u003e\u003c/a\u003e Git issue 613: (*SKIP) inside an atomic group, plus an equality-only scan stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/8244055e30dbfe4aa96ebff39ad78fabbcdf93a7\"\u003e\u003ccode\u003e8244055\u003c/code\u003e\u003c/a\u003e Git issue 612: count_one() size underflow through the stale required-string c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1c90270fb50c542a24d16c4848fc2b7b951bbd2d\"\u003e\u003ccode\u003e1c90270\u003c/code\u003e\u003c/a\u003e Git issue 611: Heap out-of-bounds write at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1760a20647f1c2ddcc025128407fe6f7edb905a1\"\u003e\u003ccode\u003e1760a20\u003c/code\u003e\u003c/a\u003e Support Python 3.15.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.7.19...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 40.36.0 to 40.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v40.37.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v40.37.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ev40.37.0 - 2026-08-20\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix: generate structurally valid Irish IBANs for \u003ccode\u003een_IE\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/CedricConday\"\u003e\u003ccode\u003e@​CedricConday\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/suliuzh\"\u003e\u003ccode\u003e@​suliuzh\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4a464c8d7130e26b4c0e9749b039d10b5614c45e\"\u003e\u003ccode\u003e4a464c8\u003c/code\u003e\u003c/a\u003e Bump version: 40.36.0 → 40.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f33e820a5237384c43718f2ec0bf60d82014db12\"\u003e\u003ccode\u003ef33e820\u003c/code\u003e\u003c/a\u003e 📝 Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/74efb07c529e826c3aa12508b204b80b180eba1f\"\u003e\u003ccode\u003e74efb07\u003c/code\u003e\u003c/a\u003e fix(en_IE): generate structurally valid Irish IBANs (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2411\"\u003e#2411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d80d125d5c20d0572a26d5d617dbad647beb9343\"\u003e\u003ccode\u003ed80d125\u003c/code\u003e\u003c/a\u003e add Pillow as an optional dependency (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/4eced9f3bbc334a4204f7f46cab64b2ceb8d45aa\"\u003e\u003ccode\u003e4eced9f\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10 to 11 (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/de212b1a7e9d67bf439ee1737f8b66ded2f5c9a8\"\u003e\u003ccode\u003ede212b1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6 to 7 (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2437\"\u003e#2437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/56748a25e4350281b0fe49d55de01e73dfe20d13\"\u003e\u003ccode\u003e56748a2\u003c/code\u003e\u003c/a\u003e exclude \u003ccode\u003e.agents\u003c/code\u003e from manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/d42d42daf84f6eb6479b8eacd694cdefec294b17\"\u003e\u003ccode\u003ed42d42d\u003c/code\u003e\u003c/a\u003e refine skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2d0e5348039771a6c77fb79b7d9a5a95720f9671\"\u003e\u003ccode\u003e2d0e534\u003c/code\u003e\u003c/a\u003e Add skills for agents\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/joke2k/faker/compare/v40.36.0...v40.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/releases\"\u003epytest-benchmark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e: instead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/318\"\u003eionelmc/pytest-benchmark#318\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded compare \u003ccode\u003e--between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/302\"\u003eionelmc/pytest-benchmark#302\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking. Contributed by Aarni Koskela in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/304\"\u003eionelmc/pytest-benchmark#304\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/306\"\u003eionelmc/pytest-benchmark#306\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/319\"\u003eionelmc/pytest-benchmark#319\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected. Contributed by xlyyddy in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/317\"\u003eionelmc/pytest-benchmark#317\u003c/a\u003e (fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003eionelmc/pytest-benchmark#65\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003eargparse.FileType\u003c/code\u003e. Contributed by Sophia Castellarin in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/310\"\u003eionelmc/pytest-benchmark#310\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos. Contributed by Daniel Holth and Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/297\"\u003eionelmc/pytest-benchmark#297\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/299\"\u003eionelmc/pytest-benchmark#299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code. Contributed by Hugo van Kemenade in \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/300\"\u003eionelmc/pytest-benchmark#300\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/pull/301\"\u003eionelmc/pytest-benchmark#301\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 (2026-08-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-precision\u003c/code\u003e and \u003ccode\u003e--benchmark-confidence\u003c/code\u003e:\ninstead of a fixed number of rounds, stop once the mean's relative margin of error falls below the given fraction.\nContributed by Aarni Koskela in \u003ccode\u003e[#318](https://github.com/ionelmc/pytest-benchmark/issues/318) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/318\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompare --between\u003c/code\u003e mode. Example: \u003ccode\u003epytest-benchmark compare --between=min 0001 0002\u003c/code\u003e.\nContributed by Aarni Koskela in \u003ccode\u003e[#302](https://github.com/ionelmc/pytest-benchmark/issues/302) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/302\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eModernized the CI/linting and added spellchecking.\nContributed by Aarni Koskela in\n\u003ccode\u003e[#304](https://github.com/ionelmc/pytest-benchmark/issues/304) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/304\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#306](https://github.com/ionelmc/pytest-benchmark/issues/306) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/306\u0026gt;\u003c/code\u003e\u003c/em\u003e and\n\u003ccode\u003e[#319](https://github.com/ionelmc/pytest-benchmark/issues/319) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/319\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDefer the xdist auto-disable warning until a benchmark fixture is collected.\nContributed by xlyyddy in \u003ccode\u003e[#317](https://github.com/ionelmc/pytest-benchmark/issues/317) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/317\u0026gt;\u003c/code\u003e_\n(fixes \u003ccode\u003e[#65](https://github.com/ionelmc/pytest-benchmark/issues/65) \u0026lt;https://github.com/ionelmc/pytest-benchmark/issues/65\u0026gt;\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003eReplaced deprecated argparse.FileType.\nContributed by Sophia Castellarin in \u003ccode\u003e[#310](https://github.com/ionelmc/pytest-benchmark/issues/310) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/310\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed various spelling/typos.\nContributed by Daniel Holth and Hugo van Kemenade in\n\u003ccode\u003e[#297](https://github.com/ionelmc/pytest-benchmark/issues/297) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/297\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#299](https://github.com/ionelmc/pytest-benchmark/issues/299) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/299\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCleaned up various dead code.\nContributed by Hugo van Kemenade in\n\u003ccode\u003e[#300](https://github.com/ionelmc/pytest-benchmark/issues/300) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/300\u0026gt;\u003c/code\u003e_ and\n\u003ccode\u003e[#301](https://github.com/ionelmc/pytest-benchmark/issues/301) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/301\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eCI now tests only with latest Pytest (now 9.1.1), Python 3.10-3.14 and PyPy 3.11.\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/ionelmc/pytest-benchmark/commit/07d519672687402e6c3fac1a543fbefd810d1e5b\"\u003e\u003ccode\u003e07d5196\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.3 → 5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/accf7331e22c0ede38ffa72081c38f3469e0c9b5\"\u003e\u003ccode\u003eaccf733\u003c/code\u003e\u003c/a\u003e Add some details on \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/304\"\u003e#304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/417dd9fa275e8b9d62c469e676cdb7546d2c4b8f\"\u003e\u003ccode\u003e417dd9f\u003c/code\u003e\u003c/a\u003e Really update the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/898acb34430c99ad877e94c52c8b90256a3bb4a8\"\u003e\u003ccode\u003e898acb3\u003c/code\u003e\u003c/a\u003e Update changelog and plan release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9cc7ef0bb1ad3785a46834b24660562dd48e4a0b\"\u003e\u003ccode\u003e9cc7ef0\u003c/code\u003e\u003c/a\u003e Defer xdist warning until benchmark collection (\u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/65\"\u003e#65\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/ef485506f04d5510831fdbdee5be7014f4726a93\"\u003e\u003ccode\u003eef48550\u003c/code\u003e\u003c/a\u003e Some minor skel updates: test only against latest pytest; bump linting/format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/88eaea957d1685f604a5835555d2ce5dbec1ac29\"\u003e\u003ccode\u003e88eaea9\u003c/code\u003e\u003c/a\u003e Add --benchmark-precision for adaptive rounds (opt-in)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/3b83d127127de74d9f71a3a78e5f661fac044950\"\u003e\u003ccode\u003e3b83d12\u003c/code\u003e\u003c/a\u003e Update and freeze GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/4b7662fbfba046eb92dd183e005e8708ac81e6cd\"\u003e\u003ccode\u003e4b7662f\u003c/code\u003e\u003c/a\u003e Fix ruff complaints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/26b011361d2c41f529a73833e1be8d3a565600fa\"\u003e\u003ccode\u003e26b0113\u003c/code\u003e\u003c/a\u003e Remove Taplo lint (unmaintained)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 50.0.0 to 50.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e50.0.1 - 2026-08-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.\n\u003cp\u003e.. _v50-0-0:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ffde75a2b594822c740a2e4748b56c00548302bf\"\u003e\u003ccode\u003effde75a\u003c/code\u003e\u003c/a\u003e bump for 50.0.1 + changelog (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/15520\"\u003e#15520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/50.0.0...50.0.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.16.3 to 0.16.5\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.16.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.16.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.16.5/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.16.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.16.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-27.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Detect blocking generic HTTP requests (\u003ccode\u003eASYNC210\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28024\"\u003e#28024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Allow timezone-safe \u003ccode\u003estrptime\u003c/code\u003e chains (\u003ccode\u003eDTZ007\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28023\"\u003e#28023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Respect side effects in \u003ccode\u003elambda\u003c/code\u003e defaults (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28000\"\u003e#28000\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix duplicated \u0026quot;of\u0026quot; in \u003ccode\u003eClientOptions\u003c/code\u003e doc comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27978\"\u003e#27978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27906\"\u003e#27906\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\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/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/aarushkandukoori\"\u003e\u003ccode\u003e@​aarushkandukoori\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-08-20.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH116\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26460\"\u003e#26460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Restrict \u003ccode\u003edelete-full-slice\u003c/code\u003e to lists (\u003ccode\u003eFURB131\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27711\"\u003e#27711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Skip \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e when the \u003ccode\u003eopen\u003c/code\u003e argument is a file descriptor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27643\"\u003e#27643\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eInvalidInstruction\u003c/code\u003e on Windows CPUs that do not support \u003ccode\u003ePOPCNT\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27803\"\u003e#27803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Emit semantic syntax errors in string type definitions as \u003ccode\u003eF722\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27835\"\u003e#27835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow \u003ccode\u003eos._exit\u003c/code\u003e imports in \u003ccode\u003eimport-private-name\u003c/code\u003e (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27738\"\u003e#27738\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/9e4938c4a60bed3e87a11ee1e1db1bd23f4d964a\"\u003e\u003ccode\u003e9e4938c\u003c/code\u003e\u003c/a\u003e Bump 0.16.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28110\"\u003e#28110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aad0e909ef1390f4b2a3ba8aa0a67fb8ea5cbacd\"\u003e\u003ccode\u003eaad0e90\u003c/code\u003e\u003c/a\u003e Allow rules without codes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28049\"\u003e#28049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5fdab73c5052350400c36b08c5d7710210343bc4\"\u003e\u003ccode\u003e5fdab73\u003c/code\u003e\u003c/a\u003e Update preview default rules and categories (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27877\"\u003e#27877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/29c8e5b2d0a46eb7dc4ff11c1b0a0dc5ccea52e4\"\u003e\u003ccode\u003e29c8e5b\u003c/code\u003e\u003c/a\u003e Document rule acceptance guidelines (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27910\"\u003e#27910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/50a4d7fd106603a5616b01ac3bef3306252b248f\"\u003e\u003ccode\u003e50a4d7f\u003c/code\u003e\u003c/a\u003e Document the new category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27906\"\u003e#27906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ada87950ea188f882f69b7bd6e2213a9696e3ee2\"\u003e\u003ccode\u003eada8795\u003c/code\u003e\u003c/a\u003e Introduce category selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27666\"\u003e#27666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8947238863b61922bfc83f07edcc697c1cc07c0\"\u003e\u003ccode\u003ed894723\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameters through callable type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28109\"\u003e#28109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2685fdebbcf9938736fed8c45886a629f9c99a06\"\u003e\u003ccode\u003e2685fde\u003c/code\u003e\u003c/a\u003e [ty] Narrow functional enum members in \u003ccode\u003e==\u003c/code\u003e and \u003ccode\u003ematch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28103\"\u003e#28103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efcffd2178ce62e9951a53d4c50cadc225a0cfec\"\u003e\u003ccode\u003eefcffd2\u003c/code\u003e\u003c/a\u003e [ty] Intersection simplifications with subtype-related generic specialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eb780488037504e11f145ed778654fd8a825028b\"\u003e\u003ccode\u003eeb78048\u003c/code\u003e\u003c/a\u003e [ty] Bump ecosystem-analyzer for HTML escaping (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28104\"\u003e#28104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.3...0.16.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/1001","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/1001","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1001/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-07T15:13:09.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5376421943","node_id":"PR_kwDONUu0rM8AAAABCivV7g","number":221,"state":"open","title":"chore(deps): bump the all group with 5 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":["tomasvotava"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-07T15:13:09.000Z","updated_at":"2026-09-07T15:15:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":5,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"pandera","old_version":"0.32.1","new_version":"0.33.1","repository_url":"https://github.com/pandera-dev/pandera"},{"name":"ruff","old_version":"0.16.5","new_version":"0.16.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"boto3-stubs","old_version":"1.43.82","new_version":"1.43.88","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"import-linter","old_version":"2.14","new_version":"2.15","repository_url":"https://github.com/seddonym/import-linter"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.1.8` |\n| [pandera](https://github.com/pandera-dev/pandera) | `0.32.1` | `0.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.5` | `0.16.6` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.43.82` | `1.43.88` |\n| [import-linter](https://github.com/seddonym/import-linter) | `2.14` | `2.15` |\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandera` from 0.32.1 to 0.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandera-dev/pandera/releases\"\u003epandera's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.33.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: announce Pandera CLI and PyArrow support in banner by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2456\"\u003eunionai-oss/pandera#2456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore optional-column semantics for bare \u003ccode\u003eT | None\u003c/code\u003e annotations by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2458\"\u003eunionai-oss/pandera#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn when optional columns are missing via on_missing option by \u003ca href=\"https://github.com/ChrisJr404\"\u003e\u003ccode\u003e@​ChrisJr404\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2447\"\u003eunionai-oss/pandera#2447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add actionlint workflow and pre-commit hook by \u003ca href=\"https://github.com/chernojagne\"\u003e\u003ccode\u003e@​chernojagne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2436\"\u003eunionai-oss/pandera#2436\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/ChrisJr404\"\u003e\u003ccode\u003e@​ChrisJr404\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2447\"\u003eunionai-oss/pandera#2447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chernojagne\"\u003e\u003ccode\u003e@​chernojagne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2436\"\u003eunionai-oss/pandera#2436\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/unionai-oss/pandera/compare/v0.33.0...v0.33.1\"\u003ehttps://github.com/unionai-oss/pandera/compare/v0.33.0...v0.33.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.33.0: Introducing \u003ccode\u003epandera\u003c/code\u003e CLI, support pyarrow table\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReport all missing required columns in lazy validation by \u003ca href=\"https://github.com/vineethsaivs\"\u003e\u003ccode\u003e@​vineethsaivs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2397\"\u003eunionai-oss/pandera#2397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): report differing categories in dtype mismatch error by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2391\"\u003eunionai-oss/pandera#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas-engine): treat an Enum annotation as a categorical dtype (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2052\"\u003e#2052\u003c/a\u003e) by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2399\"\u003eunionai-oss/pandera#2399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): run column parsers before dataframe-level coercion by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2400\"\u003eunionai-oss/pandera#2400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): treat NA as coercible for masked nullable dtypes by \u003ca href=\"https://github.com/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2404\"\u003eunionai-oss/pandera#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix parenthesized \u003ca href=\"https://github.com/dataframe\"\u003e\u003ccode\u003e@​dataframe\u003c/code\u003e\u003c/a\u003e_parser() decorator form by \u003ca href=\"https://github.com/vineethsaivs\"\u003e\u003ccode\u003e@​vineethsaivs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2408\"\u003eunionai-oss/pandera#2408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(polars): avoid concat deprecation in lazy validation by \u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2411\"\u003eunionai-oss/pandera#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Repair coerce and parser options for xarray Datasets by \u003ca href=\"https://github.com/abaarsma\"\u003e\u003ccode\u003e@​abaarsma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2413\"\u003eunionai-oss/pandera#2413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(narwhals): support the pandas schema API in the narwhals backend by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2417\"\u003eunionai-oss/pandera#2417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(io): deserialize parametrized Decimal dtypes from yaml/json by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2434\"\u003eunionai-oss/pandera#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): apply parsers to Index fields and schema components by \u003ca href=\"https://github.com/cycsmail\"\u003e\u003ccode\u003e@​cycsmail\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2435\"\u003eunionai-oss/pandera#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(pyarrow): add first-class pyarrow.Table schema validation by \u003ca href=\"https://github.com/sravankumarkunadi\"\u003e\u003ccode\u003e@​sravankumarkunadi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2427\"\u003eunionai-oss/pandera#2427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a pandera CLI: validate, infer, and generate commands by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2402\"\u003eunionai-oss/pandera#2402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd backend info to the cli by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2446\"\u003eunionai-oss/pandera#2446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pandas): respect Optional pydantic fields as nullable in PydanticModel columns (closes \u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2406\"\u003e#2406\u003c/a\u003e) by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2429\"\u003eunionai-oss/pandera#2429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Fix \u0026quot;list\u0026quot; type annotation by \u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2440\"\u003eunionai-oss/pandera#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport itemsize-parameterized numpy dtypes in the pandas engine by \u003ca href=\"https://github.com/mannemkarthik010\"\u003e\u003ccode\u003e@​mannemkarthik010\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2437\"\u003eunionai-oss/pandera#2437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bind self correctly in check_input when an arg is passed by keyword by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2428\"\u003eunionai-oss/pandera#2428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(polars): raise minimum polars version to \u003ccode\u003e1.20.0\u003c/code\u003e by \u003ca href=\"https://github.com/fhoehle\"\u003e\u003ccode\u003e@​fhoehle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2412\"\u003eunionai-oss/pandera#2412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated \u0026quot;the\u0026quot; typos in Check and Hypothesis docstrings by \u003ca href=\"https://github.com/maupatel\"\u003e\u003ccode\u003e@​maupatel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2445\"\u003eunionai-oss/pandera#2445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a backend-neutral \u003ccode\u003eFieldType[T]\u003c/code\u003e typing contract by \u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2448\"\u003eunionai-oss/pandera#2448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle scalar groupby keys in _format_groupby_input by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2420\"\u003eunionai-oss/pandera#2420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(decorators): support keyword-only / variadic functions in check_input by \u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2454\"\u003eunionai-oss/pandera#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: only run unit tests for changed areas by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2450\"\u003eunionai-oss/pandera#2450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): make intersphinx fetch resilient to transient failures by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2452\"\u003eunionai-oss/pandera#2452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): scope pyspark JDK24 security-manager opt-in to JDK 24 only by \u003ca href=\"https://github.com/cosmicBboy\"\u003e\u003ccode\u003e@​cosmicBboy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2451\"\u003eunionai-oss/pandera#2451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: respect pydantic serialization aliases by \u003ca href=\"https://github.com/mameikagou\"\u003e\u003ccode\u003e@​mameikagou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2449\"\u003eunionai-oss/pandera#2449\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/sha-sta\"\u003e\u003ccode\u003e@​sha-sta\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2391\"\u003eunionai-oss/pandera#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abaarsma\"\u003e\u003ccode\u003e@​abaarsma\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2413\"\u003eunionai-oss/pandera#2413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sravankumarkunadi\"\u003e\u003ccode\u003e@​sravankumarkunadi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2427\"\u003eunionai-oss/pandera#2427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/feiiiiii5\"\u003e\u003ccode\u003e@​feiiiiii5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2429\"\u003eunionai-oss/pandera#2429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VeckoTheGecko\"\u003e\u003ccode\u003e@​VeckoTheGecko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2440\"\u003eunionai-oss/pandera#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mannemkarthik010\"\u003e\u003ccode\u003e@​mannemkarthik010\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/unionai-oss/pandera/pull/2437\"\u003eunionai-oss/pandera#2437\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/unionai-oss/pandera/commit/62f55e2dccf0a199cfe4d6ce3eda0c1d29e2e4e6\"\u003e\u003ccode\u003e62f55e2\u003c/code\u003e\u003c/a\u003e ci: add actionlint workflow and pre-commit hook (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2436\"\u003e#2436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/857a3b2c2dccd5dcdb68b5c5f2b466d6dc7965e9\"\u003e\u003ccode\u003e857a3b2\u003c/code\u003e\u003c/a\u003e Warn when optional columns are missing via on_missing option (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2447\"\u003e#2447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/2e307b7b79b9f57f2b51037beb09b147aeb9b788\"\u003e\u003ccode\u003e2e307b7\u003c/code\u003e\u003c/a\u003e fix: restore optional-column semantics for bare \u003ccode\u003eT | None\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2458\"\u003e#2458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/ccdabde4d8ea279d30a59e54a7c85ad1eef886a4\"\u003e\u003ccode\u003eccdabde\u003c/code\u003e\u003c/a\u003e docs: announce Pandera CLI and PyArrow support in banner (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2456\"\u003e#2456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/c37a5b2c4b8c636b12f9e136707a8fe0d7a79307\"\u003e\u003ccode\u003ec37a5b2\u003c/code\u003e\u003c/a\u003e fix: respect pydantic serialization aliases (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2449\"\u003e#2449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/b6ecd5378c0745ec6146e10a29c9b285be0dcb1d\"\u003e\u003ccode\u003eb6ecd53\u003c/code\u003e\u003c/a\u003e fix(docs): only apply pyspark JDK24 security-manager opt-in flag on JDK 24 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/384d48b078528afa37757fb8312d537585bbdf2c\"\u003e\u003ccode\u003e384d48b\u003c/code\u003e\u003c/a\u003e fix(docs): make intersphinx fetch resilient to transient failures (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2452\"\u003e#2452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/f1245c280d5dfcc5ded1b80abc80073b51f1e643\"\u003e\u003ccode\u003ef1245c2\u003c/code\u003e\u003c/a\u003e ci: only run unit tests for changed areas (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2450\"\u003e#2450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/46b1495bf81ece693d055c25890e0dce6fbedfb3\"\u003e\u003ccode\u003e46b1495\u003c/code\u003e\u003c/a\u003e fix(decorators): support keyword-only / variadic functions in check_input (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unionai-oss/pandera/commit/9e268ac8f31066b007bb4e9a2cbb5fcff0156f5c\"\u003e\u003ccode\u003e9e268ac\u003c/code\u003e\u003c/a\u003e fix: handle scalar groupby keys in _format_groupby_input (\u003ca href=\"https://redirect.github.com/pandera-dev/pandera/issues/2420\"\u003e#2420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandera-dev/pandera/compare/v0.32.1...v0.33.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.16.5 to 0.16.6\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.16.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\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.16.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-09-03.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e to the \u003ccode\u003erestriction\u003c/code\u003e category (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28219\"\u003e#28219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Add an autofix for \u003ccode\u003ePT020\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27993\"\u003e#27993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Exclude pragma comments from line length calculation (\u003ccode\u003eI001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27313\"\u003e#27313\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate unary expressions when parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28233\"\u003e#28233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e, \u003ccode\u003epylint\u003c/code\u003e] Recognize \u003ccode\u003ebuiltins.open\u003c/code\u003e (\u003ccode\u003eASYNC230\u003c/code\u003e, \u003ccode\u003ePLW1514\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28021\"\u003e#28021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix panic on \u003ccode\u003ematch\u003c/code\u003e subjects (\u003ccode\u003eB031\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27781\"\u003e#27781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Reject \u003ccode\u003etzinfo=None\u003c/code\u003e for \u003ccode\u003edatetime\u003c/code\u003e bounds (\u003ccode\u003eDTZ901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28022\"\u003e#28022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003elint.external\u003c/code\u003e hint for Ruff-specific suppressions (\u003ccode\u003eRUF102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27923\"\u003e#27923\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-use-pathlib\u003c/code\u003e] Add display-only fix for \u003ccode\u003eos.listdir\u003c/code\u003e (\u003ccode\u003ePTH208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28027\"\u003e#28027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd another example and glob reference for \u003ccode\u003elint.per-file-ignores\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28106\"\u003e#28106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd duplicate work guidance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28229\"\u003e#28229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Document thread offloading (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28008\"\u003e#28008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Clarify default \u003ccode\u003eencoding\u003c/code\u003e argument handling (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/27315\"\u003e#27315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow unary plus in match patterns on Python 3.15 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/28231\"\u003e#28231\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/flying-sheep\"\u003e\u003ccode\u003e@​flying-sheep\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pikammmmm\"\u003e\u003ccode\u003e@​pikammmmm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fly1d\"\u003e\u003ccode\u003e@​fly1d\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waterWang\"\u003e\u003ccode\u003e@​waterWang\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pierre-Sassoulas\"\u003e\u003ccode\u003e@​Pierre-Sassoulas\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/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ericbuehl\"\u003e\u003ccode\u003e@​ericbuehl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tjkuson\"\u003e\u003ccode\u003e@​tjkuson\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbhinavMir\"\u003e\u003ccode\u003e@​AbhinavMir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Whning0513\"\u003e\u003ccode\u003e@​Whning0513\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\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e\"\u003e\u003ccode\u003e22f65a2\u003c/code\u003e\u003c/a\u003e Bump 0.16.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28280\"\u003e#28280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd\"\u003e\u003ccode\u003e7cc9f1e\u003c/code\u003e\u003c/a\u003e [ty] Document \u003ccode\u003eCallableTypeKind\u003c/code\u003e variants (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28277\"\u003e#28277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078\"\u003e\u003ccode\u003e056ce07\u003c/code\u003e\u003c/a\u003e Add UV_LOCKED to all workflows (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28261\"\u003e#28261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6\"\u003e\u003ccode\u003e6d6e35d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid duplicate \u003ccode\u003ePT017\u003c/code\u003e diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/27918\"\u003e#27918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a\"\u003e\u003ccode\u003e80b4891\u003c/code\u003e\u003c/a\u003e [ty] Temporarily disable tuple types in property tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28275\"\u003e#28275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0\"\u003e\u003ccode\u003e3f7a54d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Prevent fix loop between \u003ccode\u003eTID254\u003c/code\u003e and \u003ccode\u003eTID255\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28262\"\u003e#28262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d\"\u003e\u003ccode\u003e35656cf\u003c/code\u003e\u003c/a\u003e [ty] Preserve deprecations on decorated callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28256\"\u003e#28256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf\"\u003e\u003ccode\u003ed2626c8\u003c/code\u003e\u003c/a\u003e [ty] Reject missing attributes on \u003ccode\u003etype[]\u003c/code\u003e aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28267\"\u003e#28267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c\"\u003e\u003ccode\u003eee6a6d1\u003c/code\u003e\u003c/a\u003e [ty] Support ParamSpecs in \u003ccode\u003eConstraintSet\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28028\"\u003e#28028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d\"\u003e\u003ccode\u003e7f6a170\u003c/code\u003e\u003c/a\u003e [ty] Move bound APIs to constraint owners (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/28094\"\u003e#28094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3-stubs` from 1.43.82 to 1.43.88\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/youtype/mypy_boto3_builder/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `import-linter` from 2.14 to 2.15\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/seddonym/import-linter/blob/main/docs/release_notes.md\"\u003eimport-linter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.15 (2026-09-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for lazy imports to the explore UI and \u003ccode\u003edrawgraph\u003c/code\u003e command.\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/seddonym/import-linter/commit/31927f1457e3df673912cb5efb0afa6dbc37585f\"\u003e\u003ccode\u003e31927f1\u003c/code\u003e\u003c/a\u003e Release v2.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/1a652a6a02ba3ad452ad20db52641f75f26acb27\"\u003e\u003ccode\u003e1a652a6\u003c/code\u003e\u003c/a\u003e Update github actions to silence warnings about Node 20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/552df7fcd2ceb3fa9df076db8cceda693dc6cef9\"\u003e\u003ccode\u003e552df7f\u003c/code\u003e\u003c/a\u003e Display lazy imports with open arrowhead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/f55b3515cbaf947a428ee1ca4824bdacdd575b6f\"\u003e\u003ccode\u003ef55b351\u003c/code\u003e\u003c/a\u003e Upgrade to Grimp 3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/9692850bc24a7ccd6790ab5fcb767b80ae000537\"\u003e\u003ccode\u003e9692850\u003c/code\u003e\u003c/a\u003e Support overriding arrowhead on Edge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/e61a687daed7e5f91d724b287a3d4f576b5e0db8\"\u003e\u003ccode\u003ee61a687\u003c/code\u003e\u003c/a\u003e Refactor Edge so it supports line style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seddonym/import-linter/commit/efc8642199e6bcf288c59ed111dff71da5634dc8\"\u003e\u003ccode\u003eefc8642\u003c/code\u003e\u003c/a\u003e Update uv.lock\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/seddonym/import-linter/compare/v2.14...v2.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/tomasvotava/hyperion/pull/221","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasvotava%2Fhyperion/issues/221","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/221/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-07T11:14:52.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5373883221","node_id":"PR_kwDOMRnt5M8AAAABCgsKIA","number":837,"state":"closed","title":"chore(deps): bump the python-dependencies group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T11:14:01.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-07T11:14:52.000Z","updated_at":"2026-09-14T11:14:02.000Z","time_to_close":604749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":3,"packages":[{"name":"psycopg","old_version":"3.3.4","new_version":"3.3.5","repository_url":"https://github.com/psycopg/psycopg"},{"name":"apprise","old_version":"1.13.0","new_version":"1.13.1","repository_url":"https://github.com/caronc/apprise"},{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 3 updates: [psycopg](https://github.com/psycopg/psycopg), [apprise](https://github.com/caronc/apprise) and [cachetools](https://github.com/tkem/cachetools).\n\nUpdates `psycopg` from 3.3.4 to 3.3.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!ProgrammingError\u003c/code\u003e when dumping non-\u003ccode\u003e!None\u003c/code\u003e values with\nno \u003ccode\u003e!NoneType\u003c/code\u003e dumper registered in python implementation (:ticket:\u003ccode\u003e[#1325](https://github.com/psycopg/psycopg/issues/1325)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!wait_selector\u003c/code\u003e wait function to not raise \u003ccode\u003e!KeyError\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1327](https://github.com/psycopg/psycopg/issues/1327)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e!DataError\u003c/code\u003e messages leaking the literal \u003ccode\u003e{...}\u003c/code\u003e placeholder instead\nof the offending value when loading a pre-year-1 :sql:\u003ccode\u003etimestamp\u003c/code\u003e or a\nmalformed binary :sql:\u003ccode\u003ejsonb\u003c/code\u003e value (:ticket:\u003ccode\u003e[#1372](https://github.com/psycopg/psycopg/issues/1372)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003e!DataError\u003c/code\u003e instead of \u003ccode\u003e!ValueError\u003c/code\u003e when \u003ccode\u003e~psycopg.rows.namedtuple_row\u003c/code\u003e\nreceives duplicate column names (:ticket:\u003ccode\u003e[#1348](https://github.com/psycopg/psycopg/issues/1348)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003e!DataError\u003c/code\u003e on inconsistent copy data (:tickets:\u003ccode\u003e[#1359](https://github.com/psycopg/psycopg/issues/1359), [#1360](https://github.com/psycopg/psycopg/issues/1360)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eHandle client encodings aliases (:ticket:\u003ccode\u003e[#1363](https://github.com/psycopg/psycopg/issues/1363)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building C extension with Cython 3.3.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/ea542c9534cc9841d50450e0c156b549cc6c805a\"\u003e\u003ccode\u003eea542c9\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8d31e4711c22b206d8863b9397b3b34f5b106e4d\"\u003e\u003ccode\u003e8d31e47\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/268f863e0e8dbdbaf4f10616ebd14ff00edaeb51\"\u003e\u003ccode\u003e268f863\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1370\"\u003e#1370\u003c/a\u003e from Sanjays2402/fix/truncated-binary-copy-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/a412fa4d682f035a9cf3c7886a5c95c15c64ba96\"\u003e\u003ccode\u003ea412fa4\u003c/code\u003e\u003c/a\u003e docs: put together different issues fixed around copy parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/f757307068aef06e439cf164915a3781acf483b5\"\u003e\u003ccode\u003ef757307\u003c/code\u003e\u003c/a\u003e fix: clearer error messages according to truncated copy message part\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b1f17c44096b8fbc90836d9652d083f23c88e28d\"\u003e\u003ccode\u003eb1f17c4\u003c/code\u003e\u003c/a\u003e test: move existing COPY format parsing tests into a single module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/21eba573f9356276b2a3e0b7c1d86fad03f2872f\"\u003e\u003ccode\u003e21eba57\u003c/code\u003e\u003c/a\u003e test: drop useless parametrization of copy binary parsigh test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6780e17bcee0b838dedd0aa9c1b6dcc563a50cec\"\u003e\u003ccode\u003e6780e17\u003c/code\u003e\u003c/a\u003e fix(copy): handle truncated binary row headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f2fcfbf35af4b80a4755fff75fe8b8f5e059193\"\u003e\u003ccode\u003e2f2fcfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1364\"\u003e#1364\u003c/a\u003e from DylanYoung/fix_client_encoding_aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/ccc351ec3180969d105199012a017240492a43c0\"\u003e\u003ccode\u003eccc351e\u003c/code\u003e\u003c/a\u003e refactor: don't store the encodings raw table as a dict\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.4...3.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `apprise` from 1.13.0 to 1.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eJust a small update to fix a small stability issue with Attachments under some circumstances and the few PR's made by others in one more small bundle.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e  ⚠️ \u003cstrong\u003eThis will be the last version of Apprise v1.x\u003c/strong\u003e (this time i mean it :wink: ) . Future releases will be under Apprise v2.x. Again, I strongly want to urge Developers: \u003cem\u003eplease\u003c/em\u003e make sure you pin your \u003ccode\u003eprojects.toml\u003c/code\u003e or \u003ccode\u003erequirements.txt\u003c/code\u003e to \u003ccode\u003eapprise \u0026gt;=1.0.0, \u0026lt;2.0.0\u003c/code\u003e.  v2.x will be awesome, but it WILL introduce breaking changes your software may need to adapt to.  I will still continue supporting the v1.x branch should security issues arise for at year or two, but eventually v2.x would be the way to go.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Signalgrid notification service plugin by \u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Lauther notification support by \u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes Gento Linux issue with memory based attachment handling in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1709\"\u003ecaronc/apprise#1709\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e:point_up: This is the core reason for this minor update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAllow periods in Pingram API keys (JWT format) by \u003ca href=\"https://github.com/lipusal\"\u003e\u003ccode\u003e@​lipusal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1714\"\u003ecaronc/apprise#1714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes intermittent test failures for matrix in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1717\"\u003ecaronc/apprise#1717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cp\u003en/a\u003c/p\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Py 3.13+, please by \u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(matrix): typofix in label by \u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo recomended -\u0026gt; recommended by \u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.13.1 from PyPI\r\npip install apprise==1.13.1\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arthurlutz\"\u003e\u003ccode\u003e@​arthurlutz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1707\"\u003ecaronc/apprise#1707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/milos-korenciak\"\u003e\u003ccode\u003e@​milos-korenciak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1711\"\u003ecaronc/apprise#1711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vaibhav8a\"\u003e\u003ccode\u003e@​vaibhav8a\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1716\"\u003ecaronc/apprise#1716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/signalgridco\"\u003e\u003ccode\u003e@​signalgridco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1710\"\u003ecaronc/apprise#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/csanadymiklos\"\u003e\u003ccode\u003e@​csanadymiklos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1715\"\u003ecaronc/apprise#1715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ehttps://github.com/caronc/apprise/compare/v1.13.0...v1.13.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/caronc/apprise/commit/cf4da87eab713370a62d7a4f9ca64dcd3bffdf61\"\u003e\u003ccode\u003ecf4da87\u003c/code\u003e\u003c/a\u003e bumped version to v1.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0386b1cc093b3c55cfcebf4bdce17fc4309e0bd7\"\u003e\u003ccode\u003e0386b1c\u003c/code\u003e\u003c/a\u003e Add Lauther notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1715\"\u003e#1715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/3299eb37aa60ed729f935f039b79a9f9786e7424\"\u003e\u003ccode\u003e3299eb3\u003c/code\u003e\u003c/a\u003e Add Signalgrid notification support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e05331ba9b5d2ace834b23e49728065ffebcb377\"\u003e\u003ccode\u003ee05331b\u003c/code\u003e\u003c/a\u003e relaxed some noisy logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8f73f6a0cdb83e6187624715a12e8f36dd8a1bbc\"\u003e\u003ccode\u003e8f73f6a\u003c/code\u003e\u003c/a\u003e Fixes intermittent test failures for matrix on py39 (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1717\"\u003e#1717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0af1bb2097dad2557f55a523d09269341fa3fdfb\"\u003e\u003ccode\u003e0af1bb2\u003c/code\u003e\u003c/a\u003e docs: fix typo recomended -\u0026gt; recommended (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1716\"\u003e#1716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/8df288a1824711bc6b1bdb59c1b5b356e4da3fd5\"\u003e\u003ccode\u003e8df288a\u003c/code\u003e\u003c/a\u003e Allow periods in Pingram API keys (JWT format) (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1714\"\u003e#1714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/aa7221b7cabe757e000a1e6e019fc8f91ec517a0\"\u003e\u003ccode\u003eaa7221b\u003c/code\u003e\u003c/a\u003e Allow Py 3.13+ (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1711\"\u003e#1711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e93c9360c5ae2ed729a282bc454f6ceeb4abd9e1\"\u003e\u003ccode\u003ee93c936\u003c/code\u003e\u003c/a\u003e Fixes Gento Linux issue with memory based attachment handling (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1709\"\u003e#1709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4e6f4b117fa356f7ba0a076080c4927fcf78bc47\"\u003e\u003ccode\u003e4e6f4b1\u003c/code\u003e\u003c/a\u003e typofix in matrix:// label (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1707\"\u003e#1707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.13.0...v1.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Serph91P/StreamVault/pull/837","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serph91P%2FStreamVault/issues/837","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/837/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":"/backend","pr_created_at":"2026-09-07T00:55:01.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5368778109","node_id":"PR_kwDORJyONc8AAAABCclQZQ","number":238,"state":"closed","title":"chore(deps): bump cachetools from 7.1.7 to 7.1.8 in /backend","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-10T07:40:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-07T00:55:01.000Z","updated_at":"2026-09-10T07:40:50.000Z","time_to_close":283540,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [cachetools](https://github.com/tkem/cachetools) from 7.1.7 to 7.1.8.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\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=cachetools\u0026package-manager=uv\u0026previous-version=7.1.7\u0026new-version=7.1.8)](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/jeraldlyh/syllogi/pull/238","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeraldlyh%2Fsyllogi/issues/238","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/238/packages"}},{"old_version":"\u003e=5.3.0","new_version":"\u003e=7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-06T18:53:21.000Z","version_change":"\u003e=5.3.0 → \u003e=7.1.8","issue":{"uuid":"5366971559","node_id":"PR_kwDOUBpG5M8AAAABCbNp2g","number":44,"state":"closed","title":"chore(deps)(deps): Update cachetools requirement from \u003e=5.3.0 to \u003e=7.1.8","user":"dependabot[bot]","labels":["size/xs"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-09-18T03:39:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-06T18:53:21.000Z","updated_at":"2026-09-18T03:39:59.000Z","time_to_close":981995,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Update","packages":[{"name":"cachetools","old_version":"\u003e=5.3.0","new_version":"\u003e=7.1.8","repository_url":"https://github.com/tkem/cachetools"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [cachetools](https://github.com/tkem/cachetools) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.7 (2026-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eCache.__setitem__\u003c/code\u003e behavior when replacing an existing\ncache item with a larger value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.6 (2026-07-24)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMinor style improvements to keep \u003ccode\u003eruff\u003c/code\u003e happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.5 (2026-07-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTLRUCache\u003c/code\u003e silently keeping stale values on expired\noverwrites.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReject negative cache item \u003ccode\u003egetsizeof\u003c/code\u003e values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.3 (2026-05-18)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor type stub improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.2 (2026-05-16)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/01af8e5b7ce44432b357e26c7d67eb7fa055ae72\"\u003e\u003ccode\u003e01af8e5\u003c/code\u003e\u003c/a\u003e Release v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ccaa8c8c882b7cb76904ea5ae21aae33cca0c2c1\"\u003e\u003ccode\u003eccaa8c8\u003c/code\u003e\u003c/a\u003e Minor stylistic improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c65b625da6a0e73839100a0d5f5153b4245d1689\"\u003e\u003ccode\u003ec65b625\u003c/code\u003e\u003c/a\u003e Prepare v7.1.7.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/89a5928c2f8abee030c34e7964523872cb2a81ba\"\u003e\u003ccode\u003e89a5928\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.3.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.3.0...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Alexkkkkk/grinch-gram-ton/pull/44","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexkkkkk%2Fgrinch-gram-ton/issues/44","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44/packages"}},{"old_version":"7.1.7","new_version":"7.1.8","update_type":"patch","path":null,"pr_created_at":"2026-09-06T15:55:17.000Z","version_change":"7.1.7 → 7.1.8","issue":{"uuid":"5366047633","node_id":"PR_kwDOS6gKis8AAAABCahXkg","number":576,"state":"open","title":"chore(deps): bump the uv-minor-patch group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-06T15:55:17.000Z","updated_at":"2026-09-06T15:55:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":3,"packages":[{"name":"cachetools","old_version":"7.1.7","new_version":"7.1.8","repository_url":"https://github.com/tkem/cachetools"},{"name":"rapidfuzz","old_version":"3.14.5","new_version":"3.14.6","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"hypothesis","old_version":"6.167.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 3 updates: [cachetools](https://github.com/tkem/cachetools), [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) and [hypothesis](https://github.com/HypothesisWorks/hypothesis).\n\nUpdates `cachetools` from 7.1.7 to 7.1.8\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.8 (2026-08-31)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eReject negative \u003ccode\u003emaxsize\u003c/code\u003e in \u003ccode\u003eCache.__init__\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/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9\"\u003e\u003ccode\u003e4500e3d\u003c/code\u003e\u003c/a\u003e Release v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a\"\u003e\u003ccode\u003e6e49bef\u003c/code\u003e\u003c/a\u003e Update copilot instructions and review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c\"\u003e\u003ccode\u003edefc58b\u003c/code\u003e\u003c/a\u003e Prepare v7.1.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6\"\u003e\u003ccode\u003ea39180b\u003c/code\u003e\u003c/a\u003e Remove somewhat superfluous and slightly incorrect documentation note regardi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/dd181c5a72a74fcc01045c17cc943f72cb521262\"\u003e\u003ccode\u003edd181c5\u003c/code\u003e\u003c/a\u003e Reject negative maxsize in Cache.\u003cstrong\u003einit\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b43b95360fd4a99f3bdd19ff87c2ef6f4c99e3d8\"\u003e\u003ccode\u003eb43b953\u003c/code\u003e\u003c/a\u003e Use monthly batches for dependabot updates.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.7...v7.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rapidfuzz` from 3.14.5 to 3.14.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/releases\"\u003erapidfuzz's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.14.6\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix some divergences in the pure Python fallback\u003c/li\u003e\n\u003cli\u003efix compatibility with new Cython versions\u003c/li\u003e\n\u003cli\u003efixed potential out of bound access inside Editops.remove_subsequence\u003c/li\u003e\n\u003cli\u003efixed handling python fallback implementation of Editops.remove_subsequence\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edropped support for Python 3.10\u003c/li\u003e\n\u003cli\u003edropped wheels for experimental Python 3.13 free threaded\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst\"\u003erapidfuzz's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cp\u003e[3.14.6] - 2026-08-30\n^^^^^^^^^^^^^^^^^^^^^\nFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix some divergences in the pure Python fallback\n* fix compatibility with new Cython versions\n* fixed potential out of bound access inside Editops.remove_subsequence\n* fixed handling python fallback implementation of Editops.remove_subsequence\n\u003cp\u003eRemoved\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edropped support for Python 3.10\u003c/li\u003e\n\u003cli\u003edropped wheels for experimental Python 3.13 free threaded\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e[3.14.5] - 2026-04-07\n^^^^^^^^^^^^^^^^^^^^^\nFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix release ci attempting to upload a pyodide wheel\n\u003cp\u003e[3.14.4] - 2026-04-06\n^^^^^^^^^^^^^^^^^^^^^\nAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd risc64 wheels\u003c/li\u003e\n\u003cli\u003eadd support for taskflow 4.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* upgrade to ``Cython==3.2.4``.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* fix type hints for extractOne when no score_cutoff is provided\n\n[3.14.3] - 2025-11-01\n^^^^^^^^^^^^^^^^^^^^^\nFixed\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing pypy and freethreaded linux wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edrop s390x and ppc64le wheels since they are virtually unused and require extremely long to build under emulation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e[3.14.2] - 2025-10-30\n^^^^^^^^^^^^^^^^^^^^^\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/rapidfuzz/RapidFuzz/commit/d1b4a183f9ee445134989f4ebbf1e4acfacd4ed7\"\u003e\u003ccode\u003ed1b4a18\u003c/code\u003e\u003c/a\u003e fix cython call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/f7be71b006ebc7bfeb836a18b7e33fc7412f699b\"\u003e\u003ccode\u003ef7be71b\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/3199c87e7309ed6a2779e658dbddcfc0ba654963\"\u003e\u003ccode\u003e3199c87\u003c/code\u003e\u003c/a\u003e fix version tag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/7b57e516d59948d4d7e349e88ffafd99668aa2d2\"\u003e\u003ccode\u003e7b57e51\u003c/code\u003e\u003c/a\u003e update date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/15e68d7b195bca227e9992efe928a01d40bd3553\"\u003e\u003ccode\u003e15e68d7\u003c/code\u003e\u003c/a\u003e update rapidfuzz-cpp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/b637f9f689ef12749d97be87056704cfbc4c2d7c\"\u003e\u003ccode\u003eb637f9f\u003c/code\u003e\u003c/a\u003e don't hand out references to internal elements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/868a451a6eb8b111fd97bbd3b3413fcf14ee88e4\"\u003e\u003ccode\u003e868a451\u003c/code\u003e\u003c/a\u003e fix Editops.remove_subsequence\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/83b8b8468f3a0bef8fbee0a118c6ad85df325ac8\"\u003e\u003ccode\u003e83b8b84\u003c/code\u003e\u003c/a\u003e fix compatibility with new Cython versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/24f2ac526bf1ec91db90e7ff02e52816e6bcb603\"\u003e\u003ccode\u003e24f2ac5\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 4.1.1 to 4.2.0 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/commit/03a5137851aab675b430389235d73bb18873dafe\"\u003e\u003ccode\u003e03a5137\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in the github-actions group\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rapidfuzz/RapidFuzz/compare/v3.14.5...v3.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.167.0 to 6.167.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a8dcd7422a325926693b5464f73349e361562b7c\"\u003e\u003ccode\u003ea8dcd74\u003c/code\u003e\u003c/a\u003e Bump hypothesis version to 6.167.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c862b6fbc6d73e596e53531ca0063d0b33b6edfc\"\u003e\u003ccode\u003ec862b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4874\"\u003e#4874\u003c/a\u003e from Zac-HD/claude/cu-many-reject-span-discard-yhaidc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/df39994ae507fb440c044d3e225afa647887af3d\"\u003e\u003ccode\u003edf39994\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4873\"\u003e#4873\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1d0e1557d0389ac5f809ddbf1182853b46cb8525\"\u003e\u003ccode\u003e1d0e155\u003c/code\u003e\u003c/a\u003e Add return annotation to satisfy mypy's disallow_incomplete_defs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/dacaf8cd505e3a28ffceb195b174f7c322ee5367\"\u003e\u003ccode\u003edacaf8c\u003c/code\u003e\u003c/a\u003e Mark rejected many() elements' spans as discarded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/d46ff510022c3c2ad997818723ab49cae0e54297\"\u003e\u003ccode\u003ed46ff51\u003c/code\u003e\u003c/a\u003e Update pinned dependencies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/v6.167.0...v6.167.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/jamesbconner/Jidou/pull/576","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesbconner%2FJidou/issues/576","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/576/packages"}}]}