{"id":3665,"name":"hiredis","ecosystem":"pip","repository_url":"https://github.com/redis/hiredis-py","issues_count":1737,"created_at":"2025-06-06T16:30:13.763Z","updated_at":"2025-06-06T16:30:13.763Z","purl":"pkg:pypi/hiredis","metadata":{"id":2759242,"name":"hiredis","ecosystem":"pypi","description":"Python wrapper for hiredis","homepage":"https://github.com/redis/hiredis-py","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/redis/hiredis-py","keywords_array":["Redis"],"namespace":null,"versions_count":30,"first_release_published_at":"2011-01-28T20:59:32.000Z","latest_release_published_at":"2025-05-23T11:39:36.000Z","latest_release_number":"3.2.1","last_synced_at":"2025-06-06T11:01:12.018Z","created_at":"2022-04-10T11:14:51.021Z","updated_at":"2025-06-06T11:01:12.018Z","registry_url":"https://pypi.org/project/hiredis/","install_command":"pip install hiredis --index-url https://pypi.org/simple","documentation_url":"https://hiredis.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: MacOS","Operating System :: POSIX","Programming Language :: C","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Topic :: Software Development"],"normalized_name":"hiredis"},"repo_metadata":{"id":1355651,"uuid":"1303362","full_name":"redis/hiredis-py","owner":"redis","description":"Python wrapper for hiredis","archived":false,"fork":false,"pushed_at":"2025-05-23T10:50:01.000Z","size":215,"stargazers_count":504,"open_issues_count":4,"forks_count":102,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-05-29T02:40:14.699Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","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/redis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-01-28T16:27:28.000Z","updated_at":"2025-05-23T10:36:44.000Z","dependencies_parsed_at":"2025-03-16T21:21:55.623Z","dependency_job_id":"d861db00-9123-441c-9460-ea086886a7f4","html_url":"https://github.com/redis/hiredis-py","commit_stats":{"total_commits":203,"total_committers":44,"mean_commits":4.613636363636363,"dds":0.6600985221674878,"last_synced_commit":"c1eefbdb76614435f7433207bf385ba8cb930b60"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redis","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257702013,"owners_count":22588532,"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":"redis","name":"Redis","uuid":"1529926","kind":"organization","description":"","email":"redis@redis.io","website":"https://redis.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1529926?v=4","repositories_count":49,"last_synced_at":"2025-05-31T09:48:48.691Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/redis","funding_links":[],"total_stars":176503,"followers":1973,"following":0,"created_at":"2022-11-02T16:17:24.653Z","updated_at":"2025-05-31T09:48:48.692Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redis","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redis/repositories"},"tags":[{"name":"v3.1.1","sha":"043ce912299a326f24b61b11df153928819c63d6","kind":"commit","published_at":"2025-05-09T15:08:32.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v3.1.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"4113c717d17b7bd30243254d8b673fdcc2e270b3","kind":"commit","published_at":"2024-11-18T09:05:02.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v3.1.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.1.0/manifests"},{"name":"v3.0.0","sha":"c1eefbdb76614435f7433207bf385ba8cb930b60","kind":"commit","published_at":"2024-07-19T11:57:21.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v3.0.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v3.0.0/manifests"},{"name":"v2.4.0","sha":"4c970a336567223573c700a44e405a0c263a85fa","kind":"commit","published_at":"2024-07-12T06:56:19.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.4.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.4.0/manifests"},{"name":"v2.3.2","sha":"d50608e4c9ea45eafa122d914f9dadd5828f1a35","kind":"commit","published_at":"2023-12-17T12:25:35.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.3.2","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"43855b6b9b9abfbf7549c48fce4315ef9bc35299","kind":"commit","published_at":"2023-12-17T10:53:57.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.3.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.1/manifests"},{"name":"v2.2.3","sha":"d3ce7c0bd21d71a64a23b0cf9f7c11a9656a1952","kind":"commit","published_at":"2023-05-04T10:10:35.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.2.3","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.3/manifests"},{"name":"v2.3.0","sha":"d3ce7c0bd21d71a64a23b0cf9f7c11a9656a1952","kind":"commit","published_at":"2023-05-04T10:10:35.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.3.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.3.0/manifests"},{"name":"v2.2.2","sha":"8adb1b3cb38b82cdc73fa2d72879712da1f74e70","kind":"commit","published_at":"2023-02-13T06:59:13.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.2.2","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"73b8c9df62736fe88dda557bf522619def2977a1","kind":"commit","published_at":"2023-02-02T07:59:55.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.2.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"dd4c56281600639d0c97ff7b073c8696161c9199","kind":"commit","published_at":"2023-01-30T09:31:20.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.2.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"8890a2db3b52523f6629460d5603779fd9550bf6","kind":"commit","published_at":"2023-01-10T09:31:25.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.1.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"bdf390015ab01c277c245fec19cd586f82c06d6f","kind":"commit","published_at":"2022-12-14T10:59:47.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.1.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"cca535dc76d4f9380dd2e4214bca73ad826a8387","kind":"tag","published_at":"2021-03-28T15:03:20.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.0.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.0.0/manifests"},{"name":"v2.0.0.dev0","sha":"83b5009a134f5718a0f6e05ac2b12190465e4689","kind":"tag","published_at":"2021-03-16T11:33:11.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v2.0.0.dev0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v2.0.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.0.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v2.0.0.dev0/manifests"},{"name":"v1.1.0","sha":"3ccc2fd232eb77cbe586beb914a229dfed15ce01","kind":"tag","published_at":"2020-07-15T09:39:08.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v1.1.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"804f9f52e54af4e46507ffa4a5da191cc68fbe64","kind":"tag","published_at":"2019-11-13T10:33:20.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v1.0.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"3913536e394d9a4136b8ee06a0ee028180c0ae89","kind":"tag","published_at":"2019-01-20T07:52:27.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v1.0.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v1.0.0/manifests"},{"name":"v0.3.1","sha":"9392d0f20f7460f548430514342e5a80e199bc64","kind":"tag","published_at":"2018-12-24T10:42:00.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.3.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"fcfdd2bf5b7f90d8bfbb904569236dd9ec6bdcdf","kind":"tag","published_at":"2018-11-16T17:07:57.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.3.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"4c8890af86ccd40369c4ccfbb41f2d46f95263d8","kind":"tag","published_at":"2015-04-03T20:51:18.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.2.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.2.0/manifests"},{"name":"v0.1.6","sha":"0b8ce914a9a5527c64512e56498b176460cddc33","kind":"commit","published_at":"2015-01-28T21:05:26.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.6","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.6/manifests"},{"name":"v0.1.5","sha":"8f5dcb89eeece64e513d385aa348eb99571857df","kind":"commit","published_at":"2014-10-05T18:24:20.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.5","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.5/manifests"},{"name":"v0.1.4","sha":"4d81bb8d807a2a3f64c9ea5cd580c59b3ba87159","kind":"commit","published_at":"2014-06-25T08:02:06.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.4","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"1f5f17a60d7d9e46704e7388c20962996077b40a","kind":"commit","published_at":"2014-04-16T05:38:11.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.3","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.3/manifests"},{"name":"v0.1.2","sha":"b63b5c791619f7e51c49bd0bcd4b5d180a6b21b6","kind":"commit","published_at":"2014-01-06T15:26:59.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.2","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"b3f20838a8e63b345e034f35284405a272f9223f","kind":"commit","published_at":"2012-04-17T18:54:36.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.1","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"da8713278e0a83b04aa0655b9b787a9bf4521723","kind":"commit","published_at":"2011-02-01T15:02:57.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.1.0","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.1.0/manifests"},{"name":"v0.0.4","sha":"f556591ea47df0715344491c3a98ad9007c1e9a5","kind":"commit","published_at":"2011-01-30T16:57:00.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.0.4","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"56a4f22e5f006409bedc5b0b7e26873f5a73ccd1","kind":"commit","published_at":"2011-01-30T13:28:18.000Z","download_url":"https://codeload.github.com/redis/hiredis-py/tar.gz/v0.0.3","html_url":"https://github.com/redis/hiredis-py/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redis%2Fhiredis-py/tags/v0.0.3/manifests"}]},"repo_metadata_updated_at":"2025-06-03T07:02:30.087Z","dependent_packages_count":133,"downloads":5921493,"downloads_period":"last-month","dependent_repos_count":8781,"rankings":{"downloads":0.1871975792532217,"dependent_repos_count":0.09665628433517243,"dependent_packages_count":0.14814756365314927,"stargazers_count":2.8660227126972067,"forks_count":4.591673670379621,"docker_downloads_count":0.40753445599278826,"average":1.3828720443851932},"purl":"pkg:pypi/hiredis","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/hiredis","docker_dependents_count":517,"docker_downloads_count":308923467,"usage_url":"https://repos.ecosyste.ms/usage/pypi/hiredis","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/hiredis/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hiredis/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hiredis/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hiredis/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hiredis/related_packages","maintainers":[{"uuid":"RedisLabs","login":"RedisLabs","name":null,"email":null,"url":null,"packages_count":22,"html_url":"https://pypi.org/user/RedisLabs/","role":"Owner","created_at":"2024-07-17T13:26:46.818Z","updated_at":"2024-07-17T13:26:46.818Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/RedisLabs/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":347,"unique_repositories_count_past_30_days":32,"recent_issues":[{"uuid":"5359719805","node_id":"PR_kwDOR9i09M8AAAABCVx5cA","number":517,"state":"open","title":"chore(deps): bump the patch-and-minor group with 189 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-05T17:33:20.000Z","updated_at":"2026-09-05T17:33:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"patch-and-minor","update_count":189,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"httpx","old_version":"0.26.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.5","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.2.1","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"wheel","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"authlib","old_version":"1.6.9","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"pyjwt","old_version":"2.12.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"tornado","old_version":"6.5.5","new_version":"6.5.8","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"fastapi","old_version":"0.111.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.18.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"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":"apscheduler","old_version":"3.11.2","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"arq","old_version":"0.27.0","new_version":"0.28.0","repository_url":"https://github.com/python-arq/arq"},{"name":"asgiref","old_version":"3.11.1","new_version":"3.12.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"4.0.4","new_version":"4.3.1","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"bandit","old_version":"1.8.6","new_version":"1.9.4","repository_url":"https://github.com/PyCQA/bandit"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.15.0"},{"name":"bidict","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/jab/bidict"},{"name":"boto3","old_version":"1.42.64","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.64","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"build","old_version":"1.3.0","new_version":"1.6.0","repository_url":"https://github.com/pypa/build"},{"name":"celery","old_version":"5.6.2","new_version":"5.6.3","repository_url":"https://github.com/celery/celery"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"chromadb","old_version":"1.0.15","new_version":"1.5.9","repository_url":"https://github.com/chroma-core/chroma"},{"name":"click","old_version":"8.2.1","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.13.4","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cross-web","old_version":"0.4.1","new_version":"0.7.0","repository_url":"https://github.com/usecross/cross-web"},{"name":"decorator","old_version":"5.2.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"durationpy","old_version":"0.10","new_version":"0.11","repository_url":"https://github.com/icholy/durationpy"},{"name":"fabric","old_version":"3.2.2","new_version":"3.2.3","repository_url":"https://github.com/fabric/fabric"},{"name":"fakeredis","old_version":"2.33.0","new_version":"2.37.1","repository_url":"https://github.com/cunla/fakeredis-py"},{"name":"feedparser","old_version":"6.0.11","new_version":"6.0.14","repository_url":"https://github.com/kurtmckee/feedparser"},{"name":"filelock","old_version":"3.20.3","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"flask-cors","old_version":"6.0.1","new_version":"6.0.5","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"flask-socketio","old_version":"5.5.1","new_version":"5.6.1","repository_url":"https://github.com/miguelgrinberg/flask-socketio"},{"name":"flatbuffers","old_version":"25.2.10","new_version":"25.12.19","repository_url":"https://github.com/google/flatbuffers"},{"name":"fonttools","old_version":"4.60.2","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.7.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geographiclib","old_version":"2.0","new_version":"2.1","repository_url":"https://github.com/geographiclib/geographiclib-python"},{"name":"geopy","old_version":"2.4.1","new_version":"2.5.0","repository_url":"https://github.com/geopy/geopy"},{"name":"gitpython","old_version":"3.1.50","new_version":"3.1.61","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"graphql-core","old_version":"3.2.8","new_version":"3.2.12","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"hiredis","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httptools","old_version":"0.6.4","new_version":"0.8.0","repository_url":"https://github.com/MagicStack/httptools"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jiter","old_version":"0.10.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"joblib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2025.4.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"langgraph","old_version":"1.1.0","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-checkpoint","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-prebuilt","old_version":"1.0.8","new_version":"1.1.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-sdk","old_version":"0.3.13","new_version":"0.4.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"levenshtein","old_version":"0.27.3","new_version":"0.27.4","repository_url":"https://github.com/rapidfuzz/Levenshtein"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"mako","old_version":"1.3.12","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib","old_version":"3.10.5","new_version":"3.11.1","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mmh3","old_version":"5.2.0","new_version":"5.3.0","repository_url":"https://github.com/hajimes/mmh3"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msgpack","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"multidict","old_version":"6.6.3","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"narwhals","old_version":"2.0.1","new_version":"2.25.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"networkx","old_version":"3.5","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.3.2","new_version":"2.5.2","repository_url":"https://github.com/numpy/numpy"},{"name":"onnxruntime","old_version":"1.22.1","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"openai","old_version":"1.98.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-httpx","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-redis","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-sqlalchemy","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathspec","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pip-tools","old_version":"7.5.3","new_version":"7.6.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pip-audit","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.52","new_version":"3.0.53","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"propcache","old_version":"0.3.2","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-cord","old_version":"2.6.1","new_version":"2.8.1","repository_url":"https://github.com/Pycord-Development/pycord"},{"name":"pyasn1","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pybase64","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydeck","old_version":"0.9.1","new_version":"0.9.3","repository_url":"https://github.com/visgl/deck.gl"},{"name":"pygithub","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/pygithub/pygithub"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pylint","old_version":"4.0.5","new_version":"4.0.8","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypika","old_version":"0.48.9","new_version":"0.51.1","repository_url":"https://github.com/kayak/pypika"},{"name":"pyreadline3","old_version":"3.5.4","new_version":"3.5.6","repository_url":"https://github.com/pyreadline3/pyreadline3"},{"name":"python-engineio","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-levenshtein","old_version":"0.27.3","new_version":"0.27.4","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"python-socketio","old_version":"5.14.0","new_version":"5.16.4","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"qiskit","old_version":"2.3.1","new_version":"2.5.2","repository_url":"https://github.com/Qiskit/qiskit"},{"name":"rapidfuzz","old_version":"3.14.3","new_version":"3.14.6","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"rustworkx","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/Qiskit/rustworkx"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"safehttpx","old_version":"0.1.6","new_version":"0.1.7","repository_url":"https://github.com/gradio-app/safehttpx"},{"name":"scikit-learn","old_version":"1.7.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.12.0","new_version":"1.18.1","repository_url":"https://github.com/scipy/scipy"},{"name":"slowapi","old_version":"0.1.9","new_version":"0.1.10","repository_url":"https://github.com/laurents/slowapi"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"soupsieve","old_version":"2.7","new_version":"2.9.2","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.52","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"stevedore","old_version":"5.4.1","new_version":"5.9.1"},{"name":"strawberry-graphql","old_version":"0.312.3","new_version":"0.327.1","repository_url":"https://github.com/sponsors/strawberry-graphql"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.15.1","repository_url":"https://github.com/python-poetry/tomlkit"},{"name":"tqdm","old_version":"4.66.1","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.16.0","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"types-requests","old_version":"2.32.4.20260107","new_version":"2.33.0.20260712","repository_url":"https://github.com/python/typeshed"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzlocal","old_version":"5.3.1","new_version":"5.4.4","repository_url":"https://github.com/regebro/tzlocal"},{"name":"uuid-utils","old_version":"0.14.1","new_version":"0.17.0","repository_url":"https://github.com/aminalaee/uuid-utils"},{"name":"uvicorn","old_version":"0.27.1","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.5.3","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"safety","old_version":"3.2.0","new_version":"3.8.1","repository_url":"https://github.com/pyupio/safety"},{"name":"opentelemetry-instrumentation-celery","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"langchain-community","old_version":"0.3.5","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"langserve","old_version":"0.2.1","new_version":"0.3.3","repository_url":"https://github.com/langchain-ai/langserve"},{"name":"autogen","old_version":"0.5.0","new_version":"0.14.1","repository_url":"https://github.com/ag2ai/ag2classic"},{"name":"eth-account","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/ApeWorX/eth-account"},{"name":"eth-keys","old_version":"0.7.1","new_version":"0.8.0","repository_url":"https://github.com/ApeWorX/eth-keys"},{"name":"semgrep","old_version":"1.92.0","new_version":"1.176.0","repository_url":"https://github.com/semgrep/semgrep"},{"name":"pytest-benchmark","old_version":"5.1.0","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"accelerate","old_version":"1.10.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"bitsandbytes","old_version":"0.46.1","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"langchain-text-splitters","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.7.16","new_version":"0.12.1","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"safetensors","old_version":"0.5.3","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"streamlit","old_version":"1.54.0","new_version":"1.63.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"tokenizers","old_version":"0.21.4","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"torch","old_version":"2.2.0","new_version":"2.14.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.17.0","new_version":"0.29.0","repository_url":"https://github.com/pytorch/vision"},{"name":"torchaudio","old_version":"2.2.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/audio"},{"name":"scikit-image","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"wyn-wav2lip","old_version":"0.1.0","new_version":"0.2.3"},{"name":"face-alignment","old_version":"1.4.1","new_version":"1.5.0","repository_url":"https://github.com/1adrianb/face-alignment"},{"name":"azure-cognitiveservices-speech","old_version":"1.35.0","new_version":"1.51.2"},{"name":"supabase","old_version":"2.3.4","new_version":"2.31.0","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the patch-and-minor group with 189 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.14.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.5.1` |\n| [httpx](https://github.com/encode/httpx) | `0.26.0` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.34.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.2.1` | `0.16.5` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.26.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.3` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.2` | `0.48.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.9` | `1.8.0` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.0` | `2.13.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.32` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.5` | `6.5.8` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.111.0` | `0.141.1` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.19.1` |\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| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.2` | `3.11.3` |\n| [arq](https://github.com/python-arq/arq) | `0.27.0` | `0.28.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.11.1` | `3.12.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `4.0.4` | `4.3.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.6` | `1.9.4` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.15.0` |\n| [bidict](https://github.com/jab/bidict) | `0.23.1` | `0.24.1` |\n| [boto3](https://github.com/boto/boto3) | `1.42.64` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.42.64` | `1.43.86` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.6.0` |\n| [celery](https://github.com/celery/celery) | `5.6.2` | `5.6.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [chromadb](https://github.com/chroma-core/chroma) | `1.0.15` | `1.5.9` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.5.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.16.0` |\n| [cross-web](https://github.com/usecross/cross-web) | `0.4.1` | `0.7.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.2.1` | `5.3.1` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [durationpy](https://github.com/icholy/durationpy) | `0.10` | `0.11` |\n| [fabric](https://github.com/fabric/fabric) | `3.2.2` | `3.2.3` |\n| [fakeredis](https://github.com/cunla/fakeredis-py) | `2.33.0` | `2.37.1` |\n| [feedparser](https://github.com/kurtmckee/feedparser) | `6.0.11` | `6.0.14` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.3` | `3.32.5` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.1` | `6.0.5` |\n| [flask-socketio](https://github.com/miguelgrinberg/flask-socketio) | `5.5.1` | `5.6.1` |\n| [flatbuffers](https://github.com/google/flatbuffers) | `25.2.10` | `25.12.19` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.2` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.7.0` |\n| [geographiclib](https://github.com/geographiclib/geographiclib-python) | `2.0` | `2.1` |\n| [geopy](https://github.com/geopy/geopy) | `2.4.1` | `2.5.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.50` | `3.1.61` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.3` | `2.57.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.8` | `3.2.12` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.83.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.3.0` | `3.4.1` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.8.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [jiter](https://github.com/pydantic/jiter) | `0.10.0` | `0.16.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.26.0` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.5.1` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.0` | `1.2.11` |\n| [langgraph-checkpoint](https://github.com/langchain-ai/langgraph) | `4.0.1` | `4.2.0` |\n| [langgraph-prebuilt](https://github.com/langchain-ai/langgraph) | `1.0.8` | `1.1.0` |\n| [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.3.13` | `0.4.4` |\n| [levenshtein](https://github.com/rapidfuzz/Levenshtein) | `0.27.3` | `0.27.4` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.12` | `1.4.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.5` | `3.11.1` |\n| [mmh3](https://github.com/hajimes/mmh3) | `5.2.0` | `5.3.0` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.2` | `1.2.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.3` | `6.7.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.0.1` | `2.25.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.2` | `2.5.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.1` | `1.29.0` |\n| [openai](https://github.com/openai/openai-python) | `1.98.0` | `1.109.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-httpx](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-redis](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-sqlalchemy](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.65b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.1.0` | `1.1.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.3` | `7.6.1` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.8.0` | `2.10.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.11.7` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.52` | `3.0.53` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.3.2` | `0.5.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.12` |\n| [py-cord](https://github.com/Pycord-Development/pycord) | `2.6.1` | `2.8.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.3` | `0.6.4` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.2` | `1.5.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.15.0` |\n| [pydeck](https://github.com/visgl/deck.gl) | `0.9.1` | `0.9.3` |\n| [pygithub](https://github.com/pygithub/pygithub) | `2.9.0` | `2.10.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.5` | `4.0.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.2` |\n| [pypika](https://github.com/kayak/pypika) | `0.48.9` | `0.51.1` |\n| [pyreadline3](https://github.com/pyreadline3/pyreadline3) | `3.5.4` | `3.5.6` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.12.2` | `4.14.0` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.27.3` | `0.27.4` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.14.0` | `5.16.4` |\n| [qiskit](https://github.com/Qiskit/qiskit) | `2.3.1` | `2.5.2` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.14.3` | `3.14.6` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [rustworkx](https://github.com/Qiskit/rustworkx) | `0.17.1` | `0.18.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.19.2` |\n| [safehttpx](https://github.com/gradio-app/safehttpx) | `0.1.6` | `0.1.7` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.1` | `1.9.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.12.0` | `1.18.1` |\n| [slowapi](https://github.com/laurents/slowapi) | `0.1.9` | `0.1.10` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.9.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.52` |\n| [stevedore](https://docs.openstack.org/stevedore) | `5.4.1` | `5.9.1` |\n| [strawberry-graphql](https://github.com/sponsors/strawberry-graphql) | `0.312.3` | `0.327.1` |\n| [tomlkit](https://github.com/python-poetry/tomlkit) | `0.13.3` | `0.15.1` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.70.0` |\n| [typer](https://github.com/fastapi/typer) | `0.16.0` | `0.27.2` |\n| [types-requests](https://github.com/python/typeshed) | `2.32.4.20260107` | `2.33.0.20260712` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.16.0` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.3.1` | `5.4.4` |\n| [uuid-utils](https://github.com/aminalaee/uuid-utils) | `0.14.1` | `0.17.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.27.1` | `0.52.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.2.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.5.3` | `0.8.3` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.24.5` |\n| [safety](https://github.com/pyupio/safety) | `3.2.0` | `3.8.1` |\n| [opentelemetry-instrumentation-celery](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.5` | `0.4.2` |\n| [langserve](https://github.com/langchain-ai/langserve) | `0.2.1` | `0.3.3` |\n| [autogen](https://github.com/ag2ai/ag2classic) | `0.5.0` | `0.14.1` |\n| [eth-account](https://github.com/ApeWorX/eth-account) | `0.13.0` | `0.14.0` |\n| [eth-keys](https://github.com/ApeWorX/eth-keys) | `0.7.1` | `0.8.0` |\n| [semgrep](https://github.com/semgrep/semgrep) | `1.92.0` | `1.176.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.1.0` | `5.3.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.10.0` | `1.14.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.46.1` | `0.50.2` |\n| [langchain-text-splitters](https://github.com/langchain-ai/langchain) | `1.1.1` | `1.1.2` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.16` | `0.12.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.5.3` | `0.8.0` |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.54.0` | `1.63.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.21.4` | `0.23.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.2.0` | `2.14.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.17.0` | `0.29.0` |\n| [torchaudio](https://github.com/pytorch/audio) | `2.2.0` | `2.11.0` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.22.0` | `0.26.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| wyn-wav2lip | `0.1.0` | `0.2.3` |\n| [face-alignment](https://github.com/1adrianb/face-alignment) | `1.4.1` | `1.5.0` |\n| azure-cognitiveservices-speech | `1.35.0` | `1.51.2` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.3.4` | `2.31.0` |\n\nUpdates `anyio` from 4.9.0 to 4.14.2\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.14.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eByteReceiveStream.receive()\u003c/code\u003e implementations to raise a \u003ccode\u003eValueError\u003c/code\u003e when \u003ccode\u003emax_bytes\u003c/code\u003e is not a positive integer (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting \u003ccode\u003efloat(\u0026quot;inf\u0026quot;)\u003c/code\u003e when the limiter was instantiated outside of an event loop. The adapter setter checked for infinity by identity (\u003ccode\u003evalue is math.inf\u003c/code\u003e), so only the exact \u003ccode\u003emath.inf\u003c/code\u003e singleton was accepted, while every backend setter (using \u003ccode\u003emath.isinf()\u003c/code\u003e) accepts any positive infinity (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1189\"\u003e#1189\u003c/a\u003e; PR by \u003ca href=\"https://github.com/greymoth-jp\"\u003e\u003ccode\u003e@​greymoth-jp\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eto_process.run_sync()\u003c/code\u003e deadlocking when the worker function writes enough data to \u003ccode\u003esys.stderr\u003c/code\u003e to fill the (undrained) pipe buffer. The worker process now redirects \u003ccode\u003esys.stderr\u003c/code\u003e to \u003ccode\u003eos.devnull\u003c/code\u003e as well, matching the documented behavior\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eTLSStream.wrap()\u003c/code\u003e matching an internationalized (unicode) host name against the peer certificate using IDNA 2003 (via the standard library) instead of IDNA 2008, which could cause the host name to be matched against the wrong certificate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1208\"\u003e#1208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.open_process()\u003c/code\u003e (and \u003ccode\u003erun_process()\u003c/code\u003e) ignoring the \u003ccode\u003eextra_groups\u003c/code\u003e argument, as it mistakenly passed the value of the \u003ccode\u003egroup\u003c/code\u003e argument instead (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1209\"\u003e#1209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.acquire_nowait()\u003c/code\u003e and \u003ccode\u003eCapacityLimiter.acquire_nowait_on_behalf_of()\u003c/code\u003e raising \u003ccode\u003etrio.WouldBlock\u003c/code\u003e instead of \u003ccode\u003eanyio.WouldBlock\u003c/code\u003e on the \u003ccode\u003etrio\u003c/code\u003e backend when there are no tokens available (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens (\u003ccode\u003eborrowed_tokens\u003c/code\u003e exceeding \u003ccode\u003etotal_tokens\u003c/code\u003e and \u003ccode\u003eavailable_tokens\u003c/code\u003e going negative) when a non-blocking acquire was made in the window between a token being released and the notified waiter resuming. The freed token is now reserved for the woken waiter right away, so the non-blocking acquire correctly raises \u003ccode\u003eWouldBlock\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1170\"\u003e#1170\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed unnecessary CPU spin when delivering cancellation from \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio under certain conditions, including improper cancel scope nesting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.15\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an asynchronous implementation of the \u003ccode\u003eitertools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/998\"\u003e#998\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003elocal_port\u003c/code\u003e parameter to \u003ccode\u003econnect_tcp()\u003c/code\u003e to allow binding to a specific local port before connecting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1067\"\u003e#1067\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nullwiz\"\u003e\u003ccode\u003e@​nullwiz\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for custom capacity limiters in async path and file I/O functions and classes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecreate_task()\u003c/code\u003e task group method for easier asyncio migration (returns a \u003ccode\u003eTaskHandle\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1098\"\u003e#1098\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option for \u003ccode\u003eTaskGroup.start()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e (which then contains the start value in the \u003ccode\u003estart_value\u003c/code\u003e property)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecancel()\u003c/code\u003e convenience method to \u003ccode\u003eTaskGroup\u003c/code\u003e as a shortcut for cancelling the task group's cancel scope\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved the error message when a known backend is not installed to suggest the install command (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1115\"\u003e#1115\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\u003eImproved \u003ccode\u003eanyio.Path\u003c/code\u003e to preserve subclass types by returning \u003ccode\u003eSelf\u003c/code\u003e in methods that return path objects (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1130\"\u003e#1130\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\u003eChanged the parameter type annotation in \u003ccode\u003eanyio.Path.write_bytes()\u003c/code\u003e to accept any \u003ccode\u003eReadableBuffer\u003c/code\u003e, thus allowing it to accept \u003ccode\u003ebytearray\u003c/code\u003e and \u003ccode\u003ememoryview\u003c/code\u003e to match \u003ccode\u003epathlib.Path.write_bytes()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1135\"\u003e#1135\u003c/a\u003e; PR by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis reverts an earlier change from v3.7.0 which was made in error. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1153\"\u003e#1153\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.run\u003c/code\u003e to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1171\"\u003e#1171\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 several classes (and their subclasses) to have \u003ccode\u003e__slots__\u003c/code\u003e (with \u003ccode\u003e__weakref__\u003c/code\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CancelScope\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c384f99687c64c59ed8a11c3a0f11a2d57daff71\"\u003e\u003ccode\u003ec384f99\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dbba29d1ade7936f18fb71ba24aa92978673482a\"\u003e\u003ccode\u003edbba29d\u003c/code\u003e\u003c/a\u003e Fixed 100% CPU spin on cancel scope misuse (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6bbc6c33caabc13af5bc4256f745027cf8d5d7b8\"\u003e\u003ccode\u003e6bbc6c3\u003c/code\u003e\u003c/a\u003e Fix CapacityLimiter over-granting tokens on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f82b2537cbbe98f3df3f295499056ab7de0b15b\"\u003e\u003ccode\u003e6f82b25\u003c/code\u003e\u003c/a\u003e Refactored TestTLSStream.test_receive_invalid_max_bytes() to be less flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/be24b0414f67f604bcbdd5ea3bcc56ab920d872e\"\u003e\u003ccode\u003ebe24b04\u003c/code\u003e\u003c/a\u003e Relaxed timeouts to fix test flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/81135065749b4f60c06619b9caaf0a11871c1ddf\"\u003e\u003ccode\u003e8113506\u003c/code\u003e\u003c/a\u003e Fix test flakiness caused by slow callback duration logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1e988b617b69588e33fecb75e36a9837245f562f\"\u003e\u003ccode\u003e1e988b6\u003c/code\u003e\u003c/a\u003e Fixed CapacityLimiter raising trio.WouldBlock instead of anyio.WouldBlock (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44713f345cd29dd4e7d76553c134543a1296cc62\"\u003e\u003ccode\u003e44713f3\u003c/code\u003e\u003c/a\u003e Pin setup-uv to a commit sha across downstream jobs (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1b7301c8264b0d2e8d24a5788fd29e93dea4040\"\u003e\u003ccode\u003ef1b7301\u003c/code\u003e\u003c/a\u003e Fixed stderr writes in a worker subprocess causing a deadlock (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/212be93c2cf2c841e753e95e5e2c543ee7feca90\"\u003e\u003ccode\u003e212be93\u003c/code\u003e\u003c/a\u003e Fix flaky test_tcp_listener_same_port using a hardcoded port (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1206\"\u003e#1206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.9\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.8...3.4.9\"\u003e3.4.9\u003c/a\u003e (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in our fallback path leading to a decode error. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/771\"\u003e#771\u003c/a\u003e)\nWe've yanked 3.4.8 as a result of that bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.7...3.4.8\"\u003e3.4.8\u003c/a\u003e (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.8...3.4.9\"\u003e3.4.9\u003c/a\u003e (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in our fallback path leading to a decode error. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/771\"\u003e#771\u003c/a\u003e)\nWe've yanked 3.4.8 as a result of that bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.7...3.4.8\"\u003e3.4.8\u003c/a\u003e (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWall import time due to cascade codec imports for our multibyte first sort of iana supported codecs (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnnecessary json import at runtime (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/753\"\u003e#753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInverse capitalization not seen by noise detector (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/731\"\u003e#731\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/jawah/charset_normalizer/commit/e239bdc5cc1eb1f0db08d4046ad531f805dbea71\"\u003e\u003ccode\u003ee239bdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/795\"\u003e#795\u003c/a\u003e from jawah/release-3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/648ad776db64a00aa7efd70a94656ac43784abb3\"\u003e\u003ccode\u003e648ad77\u003c/code\u003e\u003c/a\u003e docs: update faq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fab27492c39baa61aca12826022e266781108570\"\u003e\u003ccode\u003efab2749\u003c/code\u003e\u003c/a\u003e docs: write changelog for 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/7d32774e75d16cccd3d22c758a77fca135952787\"\u003e\u003ccode\u003e7d32774\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9a69f609f254ba4bfe9d0cbf375728e43360cdf2\"\u003e\u003ccode\u003e9a69f60\u003c/code\u003e\u003c/a\u003e docs: update data/info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/5dcc6dd81a8a0a4bd525f8d6f508da8285caf402\"\u003e\u003ccode\u003e5dcc6dd\u003c/code\u003e\u003c/a\u003e perf: charinfo cache access optimization in cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ea3b4479270762be1228562c590e5a212727f208\"\u003e\u003ccode\u003eea3b447\u003c/code\u003e\u003c/a\u003e fix: do not validate-decode large payload when md says it's noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a05917f87b5f71d6022d8abe2b0af239f65c1111\"\u003e\u003ccode\u003ea05917f\u003c/code\u003e\u003c/a\u003e chore: allow setuptools 84 builds (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/3325d87c3c73fa1a8746947151faaf9a41177543\"\u003e\u003ccode\u003e3325d87\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/792\"\u003e#792\u003c/a\u003e from jawah/update-cibuildwheel-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/77203b104216a6d578a682b5ac0514750aa988f7\"\u003e\u003ccode\u003e77203b1\u003c/code\u003e\u003c/a\u003e chore: reformat noxfile.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.26.0 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.27.2\u003c/h2\u003e\n\u003ch2\u003e0.27.2 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReintroduced supposedly-private \u003ccode\u003eURLTypes\u003c/code\u003e shortcut. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/2673\"\u003e#2673\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.27.1\u003c/h2\u003e\n\u003ch2\u003e0.27.1 (27th August, 2024)\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003ezstd\u003c/code\u003e content decoding using the python \u003ccode\u003ezstandard\u003c/code\u003e package is added. Installable using \u003ccode\u003ehttpx[zstd]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3139\"\u003e#3139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error messaging for \u003ccode\u003eInvalidURL\u003c/code\u003e exceptions. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eapp\u003c/code\u003e type signature in \u003ccode\u003eASGITransport\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3109\"\u003e#3109\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.2 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReintroduced supposedly-private \u003ccode\u003eURLTypes\u003c/code\u003e shortcut. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/2673\"\u003e#2673\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003ezstd\u003c/code\u003e content decoding using the python \u003ccode\u003ezstandard\u003c/code\u003e package is added. Installable using \u003ccode\u003ehttpx[zstd]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3139\"\u003e#3139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error messaging for \u003ccode\u003eInvalidURL\u003c/code\u003e exceptions. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eapp\u003c/code\u003e type signature in \u003ccode\u003eASGITransport\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0 (21st February, 2024)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.26.0...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore the \u003ccode\u003estd3_rules\u003c/code\u003e option, which had no effect since changes\nto UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e processing in Unicode 16. Note that \u003ccode\u003euts46_remap()\u003c/code\u003e\ndefaults to enabling STD3 rules, so direct callers will see input\ncontaining non-LDH ASCII characters rejected again.\u003c/li\u003e\n\u003cli\u003ePerformance improvements to UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e mapping, particularly for\nASCII-only domains.\u003c/li\u003e\n\u003cli\u003eTest on free-threaded CPython with the GIL disabled and document\nthread safety.\u003c/li\u003e\n\u003cli\u003eExpose the Unicode version of the generated tables as\n\u003ccode\u003eidna.unicode_version\u003c/code\u003e, and show it in \u003ccode\u003eidna --version\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003ecodepoint\u003c/code\u003e and \u003ccode\u003eposition\u003c/code\u003e attributes to\n\u003ccode\u003eIDNAError\u003c/code\u003e so that the failed rule and the offending character can\nbe identified without parsing the exception message.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003etransitional\u003c/code\u003e argument to \u003ccode\u003eencode()\u003c/code\u003e and\n\u003ccode\u003euts46_remap()\u003c/code\u003e is now completely ignored, and gives a deprecation warning\nfor the latter.\u003c/li\u003e\n\u003cli\u003eReject A-labels that are not the canonical Punycode encoding of\ntheir U-label.\u003c/li\u003e\n\u003cli\u003eFix CONTEXTJ violations raising \u003ccode\u003eIDNAError\u003c/code\u003e instead of\n\u003ccode\u003eInvalidCodepointContext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConsistently raise \u003ccode\u003eIDNAError\u003c/code\u003e for empty labels and non-ASCII bytes\npassed to label helper functions and the incremental codec.\u003c/li\u003e\n\u003cli\u003eAdd property-based tests, extended fuzzing targets, coverage\nmeasurement, and CI checks that the data tables match the generator\noutput.\u003c/li\u003e\n\u003cli\u003eVarious code quality and tooling improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to stefan6419846, LouieLuNZ, and Salvatore Corvaglia for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003ev3.18\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.17\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.16\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.15\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.14\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.13\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.12\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/kjd/idna/blob/master/HISTORY.md\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19 (2026-08-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore the \u003ccode\u003estd3_rules\u003c/code\u003e option, which had no effect since changes\nto UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e processing in Unicode 16. Note that \u003ccode\u003euts46_remap()\u003c/code\u003e\ndefaults to enabling STD3 rules, so direct callers will see input\ncontaining non-LDH ASCII characters rejected again.\u003c/li\u003e\n\u003cli\u003ePerformance improvements to UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e mapping, particularly for\nASCII-only domains.\u003c/li\u003e\n\u003cli\u003eTest on free-threaded CPython with the GIL disabled and document\nthread safety.\u003c/li\u003e\n\u003cli\u003eExpose the Unicode version of the generated tables as\n\u003ccode\u003eidna.unicode_version\u003c/code\u003e, and show it in \u003ccode\u003eidna --version\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003ecodepoint\u003c/code\u003e and \u003ccode\u003eposition\u003c/code\u003e attributes to\n\u003ccode\u003eIDNAError\u003c/code\u003e so that the failed rule and the offending character can\nbe identified without parsing the exception message.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003etransitional\u003c/code\u003e argument to \u003ccode\u003eencode()\u003c/code\u003e and\n\u003ccode\u003euts46_remap()\u003c/code\u003e is now completely ignored, and gives a deprecation warning\nfor the latter.\u003c/li\u003e\n\u003cli\u003eReject A-labels that are not the canonical Punycode encoding of\ntheir U-label.\u003c/li\u003e\n\u003cli\u003eFix CONTEXTJ violations raising \u003ccode\u003eIDNAError\u003c/code\u003e instead of\n\u003ccode\u003eInvalidCodepointContext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConsistently raise \u003ccode\u003eIDNAError\u003c/code\u003e for empty labels and non-ASCII bytes\npassed to label helper functions and the incremental codec.\u003c/li\u003e\n\u003cli\u003eAdd property-based tests, extended fuzzing targets, coverage\nmeasurement, and CI checks that the data tables match the generator\noutput.\u003c/li\u003e\n\u003cli\u003eVarious code quality and tooling improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to stefan6419846, LouieLuNZ, and Salvatore Corvaglia for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003e3.18 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen decoding a domain, add a \u003ccode\u003edisplay\u003c/code\u003e argument that will pass\nthrough invalid labels rather than raising an exception.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.17 (2026-05-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSubstantial 75% reduction in memory usage through new data\nstructures and some optimization in processing speed.\u003c/li\u003e\n\u003cli\u003eAdded a general 1024-character input length cap to the public\nvalidation, conversion, and codec entry points. This is well above\nany legitimate domain or label and guards against pathological\ninputs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.16 (2026-05-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a command-line interface (\u003ccode\u003epython -m idna\u003c/code\u003e, also available as\nthe \u003ccode\u003eidna\u003c/code\u003e script). Encodes or decodes one or more domains supplied\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/kjd/idna/commit/03a9a11dd8aecd4fea742cabe20f4d3d9ed82abb\"\u003e\u003ccode\u003e03a9a11\u003c/code\u003e\u003c/a\u003e Release 3.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2d2a7ef0c59210a48407b3dde6d884933cecf093\"\u003e\u003ccode\u003e2d2a7ef\u003c/code\u003e\u003c/a\u003e Pre-release 3.19rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5cce1308d148019c5fa0febceafa13e99cdacfe7\"\u003e\u003ccode\u003e5cce130\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/268\"\u003e#268\u003c/a\u003e from kjd/fix-std3-regex-alert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/3914b75f3e4cbc11e59f92eeecdb16d10871e57f\"\u003e\u003ccode\u003e3914b75\u003c/code\u003e\u003c/a\u003e Split the STD3 disallowed-character range so uppercase is explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ce9fd98ac4073866db276e93834b259f2a5a4ac4\"\u003e\u003ccode\u003ece9fd98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/267\"\u003e#267\u003c/a\u003e from kjd/housekeeping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/809240c3cc9358c9c9c79b2d12ffe39e75ccfb0f\"\u003e\u003ccode\u003e809240c\u003c/code\u003e\u003c/a\u003e Fail CI when the license copyright year is behind the current year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d9e16c523d7d25dcc14100fa80f3e303404e09be\"\u003e\u003ccode\u003ed9e16c5\u003c/code\u003e\u003c/a\u003e Consolidate test fixtures, prune stale gitignore entries, and fix doc typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ef30feeed3a758e96286fdab0315a551f7f5e7d6\"\u003e\u003ccode\u003eef30fee\u003c/code\u003e\u003c/a\u003e Remove dead code and pare back superfluous comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/b907913f854d26cc714f721c6c2cb626d41ac468\"\u003e\u003ccode\u003eb907913\u003c/code\u003e\u003c/a\u003e Tighten the version support and Unicode notes in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/6204cbe343ef438df7c58bc80b94d0f960991d90\"\u003e\u003ccode\u003e6204cbe\u003c/code\u003e\u003c/a\u003e Ignore local build artifacts and stop packaging stray tooling config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.2.1 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://red...\n\n_Description has been truncated_","html_url":"https://github.com/welshDog/HyperCode-V2.4/pull/517","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/welshDog%2FHyperCode-V2.4/issues/517","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/517/packages"},{"uuid":"5358762751","node_id":"PR_kwDOUOzYNc8AAAABCVDSfA","number":10,"state":"open","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T14:55:57.000Z","updated_at":"2026-09-05T14:56:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"detect-installer","old_version":"0.1.0","new_version":"0.2.1"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.28.0` | `1.29.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| detect-installer | `0.1.0` | `0.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.28.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.28.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003e#3421\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003e#3419\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003e#3420\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e to 128 KiB in \u003ccode\u003eGZipResponder\u003c/code\u003e, keeping it usable without the new keyword argument \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3415\"\u003e#3415\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOffload large GZip compression to a worker thread, keeping the event loop responsive. \u003ccode\u003eGZipMiddleware\u003c/code\u003e accepts a new \u003ccode\u003ethread_minimum_size\u003c/code\u003e parameter (default 128 KiB) controlling the minimum body chunk size compressed in a thread \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3410\"\u003e#3410\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e, reducing memory usage during compression \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3411\"\u003e#3411\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLazily allocate \u003ccode\u003eGZipMiddleware\u003c/code\u003e compression resources, avoiding compressor allocation for responses that are never compressed \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3407\"\u003e#3407\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/starlette/commit/4f250d6b814587e20c5365f0a5f0c4d42bcb929f\"\u003e\u003ccode\u003e4f250d6\u003c/code\u003e\u003c/a\u003e Version 1.6.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9eea41ad3c26ad21b9bdfe4578c1cdad6c9b9ac2\"\u003e\u003ccode\u003e9eea41a\u003c/code\u003e\u003c/a\u003e Expose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/38f8999a229610b36f39d11f67d80515a15c6330\"\u003e\u003ccode\u003e38f8999\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3431\"\u003e#3431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c41236c03868fb3779a64101f4ea88cd47877e23\"\u003e\u003ccode\u003ec41236c\u003c/code\u003e\u003c/a\u003e Version 1.5.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9c500db197859dba4a8db13fa8e7d2c55de8152c\"\u003e\u003ccode\u003e9c500db\u003c/code\u003e\u003c/a\u003e Limit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3430\"\u003e#3430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/78ae82cad482fe66a73fb1217f0a6609b3f998f6\"\u003e\u003ccode\u003e78ae82c\u003c/code\u003e\u003c/a\u003e Reject inverted single-byte Range like bytes=5-4 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c1d6edaf43920104d4389e983c3e0314f6af14cf\"\u003e\u003ccode\u003ec1d6eda\u003c/code\u003e\u003c/a\u003e chore(deps): bump pymdown-extensions from 11.0 to 11.0.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3429\"\u003e#3429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/ee66ca48418780d6415d231851b31464febc32de\"\u003e\u003ccode\u003eee66ca4\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 8 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/00d10167523f819d39d5ca36732348d58645a447\"\u003e\u003ccode\u003e00d1016\u003c/code\u003e\u003c/a\u003e fix(tests): skip test_staticfiles_filename_too_long on Windows where os.pathc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d96887ea7b49db3d1d15994be6438c7fe99936f4\"\u003e\u003ccode\u003ed96887e\u003c/code\u003e\u003c/a\u003e Add Pydantic Logfire banner to the docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3428\"\u003e#3428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.3.1...1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.13.3 to 3.14.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst\"\u003eaiohttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.14.3 (2026-07-22)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the client dropping only the first \u003ccode\u003eAuthorization\u003c/code\u003e, \u003ccode\u003eCookie\u003c/code\u003e and\n\u003ccode\u003eProxy-Authorization\u003c/code\u003e header when a redirect crossed an origin -- by :user:\u003ccode\u003earshsmith1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13180\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error message construction in the C HTTP parser -- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13222\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e3.14.2 (2026-07-20)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed :py:attr:\u003ccode\u003e~aiohttp.web.StreamResponse.last_modified\u003c/code\u003e rounding a\n:class:\u003ccode\u003edatetime.datetime\u003c/code\u003e with a fractional second down.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5303\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed resolving \u003ccode\u003elocalhost\u003c/code\u003e on Windows to fall back without \u003ccode\u003eAI_ADDRCONFIG\u003c/code\u003e\nwhen the first lookup fails, so \u003ccode\u003elocalhost\u003c/code\u003e still works without an active\nnetwork.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5357\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/5e392ce0456f5235a4ee6ad46f0e806df2f15873\"\u003e\u003ccode\u003e5e392ce\u003c/code\u003e\u003c/a\u003e Release v3.14.3 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13225\"\u003e#13225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d\"\u003e\u003ccode\u003e49f65d5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13222\"\u003e#13222\u003c/a\u003e/f4866933 backport][3.14] Build C parser error message from bounded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/240099e5216a01b32919dcd8dd5c6c0b1bf83671\"\u003e\u003ccode\u003e240099e\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13180\"\u003e#13180\u003c/a\u003e/ee53d655 backport][3.14] drop every copy of credential headers on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/d93f30a302f8b930074fe14a2be7b2088ba28111\"\u003e\u003ccode\u003ed93f30a\u003c/code\u003e\u003c/a\u003e Bump version (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13202\"\u003e#13202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/c1b9212ad3d93c24b5fc66ad0849597166bc816e\"\u003e\u003ccode\u003ec1b9212\u003c/code\u003e\u003c/a\u003e Release v3.14.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13201\"\u003e#13201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/380d4b55e8df48dfd62f1addfb530426f6bc4106\"\u003e\u003ccode\u003e380d4b5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13054\"\u003e#13054\u003c/a\u003e/ed8b040c backport][3.14] escape backslashes in digest auth quoted-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/e1e1bee363dfba04a9a75c8801717da2ed5bdcb9\"\u003e\u003ccode\u003ee1e1bee\u003c/code\u003e\u003c/a\u003e Make llhttp method array size dynamic (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13174\"\u003e#13174\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13196\"\u003e#13196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/aa4cf29b6a5ad6f4d21fa1dd3f69193dc2f5d505\"\u003e\u003ccode\u003eaa4cf29\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13170\"\u003e#13170\u003c/a\u003e/2b906869 backport][3.14] Fix StreamResponse.last_modified rounding...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/71b57b40d85a0723c92b0a5a37ebdf518210d2ea\"\u003e\u003ccode\u003e71b57b4\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13172\"\u003e#13172\u003c/a\u003e/a57747ed backport][3.14] Fix C parser folding fragment into query_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/64a03fb620b623e5a5a1b7103c07ae3e536a0d40\"\u003e\u003ccode\u003e64a03fb\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13169\"\u003e#13169\u003c/a\u003e/1adc0cd7 backport][3.14] ...\n\n_Description has been truncated_","html_url":"https://github.com/zhao6300/vllm-opt/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao6300%2Fvllm-opt/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5355854093","node_id":"PR_kwDOUHlKes8AAAABCS106w","number":10,"state":"open","title":"build(deps): bump the minor-update group across 1 directory with 185 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T05:30:00.000Z","updated_at":"2026-09-05T05:30:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-update","update_count":185,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 185 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 head...\n\n_Description has been truncated_","html_url":"https://github.com/Entrpi/vllm-glm-5.3-flash-spark/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Entrpi%2Fvllm-glm-5.3-flash-spark/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5355478249","node_id":"PR_kwDOTx9lYc8AAAABCSjYaA","number":10,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T04:10:37.000Z","updated_at":"2026-09-05T04:10:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"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.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.28.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/yadongtan/vllm_study/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadongtan%2Fvllm_study/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5351977869","node_id":"PR_kwDOUGq5rs8AAAABCPyjvw","number":15,"state":"open","title":"Bump the minor-update group across 1 directory with 184 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T19:03:51.000Z","updated_at":"2026-09-04T19:04:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":184,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 184 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/fast...\n\n_Description has been truncated_","html_url":"https://github.com/yhfgyyf/vllm-GLM-5.3-Flash-sm120/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhfgyyf%2Fvllm-GLM-5.3-Flash-sm120/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"5343417516","node_id":"PR_kwDOToXI7s8AAAABCI8HDw","number":20,"state":"open","title":"Bump the minor-update group across 1 directory with 187 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T02:14:11.000Z","updated_at":"2026-09-04T02:14:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":187,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.25.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.22.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 187 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.25.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.22.0` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.1.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/c...\n\n_Description has been truncated_","html_url":"https://github.com/btlqql/vllm-rwkv7/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/btlqql%2Fvllm-rwkv7/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"5343191056","node_id":"PR_kwDOTbO7F88AAAABCIxLYA","number":18,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T01:36:37.000Z","updated_at":"2026-09-04T01:36:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.6` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/codecookinging/vllm_marlin/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecookinging%2Fvllm_marlin/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"5343097489","node_id":"PR_kwDOTw8DQM8AAAABCIso_A","number":14,"state":"open","title":"Bump the minor-update group across 1 directory with 187 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T01:19:59.000Z","updated_at":"2026-09-04T01:20:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":187,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.8.31","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.26.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 187 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.8.31` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.26.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.8.31\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/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\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.8.31\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.26.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.26.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 ...\n\n_Description has been truncated_","html_url":"https://github.com/kuoihao/vllm-tle/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuoihao%2Fvllm-tle/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"5342228020","node_id":"PR_kwDOTbcjQc8AAAABCIBcdQ","number":42,"state":"closed","title":"build(deps): bump the python group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T22:47:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-03T22:50:28.000Z","updated_at":"2026-09-04T22:47:42.000Z","time_to_close":86233,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python","update_count":16,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.2.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"psycopg","old_version":"3.3.4","new_version":"3.3.5"},{"name":"sentry-sdk","old_version":"2.66.1","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"uvicorn","old_version":"0.52.0","new_version":"0.52.4"},{"name":"coverage","old_version":"7.15.2","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.7","new_version":"6.1.0"},{"name":"django-upgrade","old_version":"1.31.1","new_version":"1.32.0","repository_url":"https://github.com/adamchainz/django-upgrade"},{"name":"djlint","old_version":"1.43.1","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.2.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.3.4` | `3.3.5` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.66.1` | `2.68.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.52.0` | `0.52.4` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.2` | `7.16.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.7` | `6.1.0` |\n| [django-upgrade](https://github.com/adamchainz/django-upgrade) | `1.31.1` | `1.32.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.43.1` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.5` |\n\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.2.0\u003c/h2\u003e\n\u003cp\u003eCleartext HTTP/2 lands, and an HTTP/2 security fix.\u003c/p\u003e\n\u003ch2\u003eCleartext HTTP/2 (h2c)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ehttp2_cleartext\u003c/code\u003e accepts \u003ccode\u003eprior-knowledge\u003c/code\u003e, \u003ccode\u003eupgrade\u003c/code\u003e, \u003ccode\u003eboth\u003c/code\u003e or \u003ccode\u003eoff\u003c/code\u003e (the\ndefault). Prior knowledge serves a connection that opens with the HTTP/2\npreface; \u003ccode\u003eupgrade\u003c/code\u003e honours an HTTP/1.1 \u003ccode\u003eUpgrade: h2c\u003c/code\u003e request. Both work on the\ngthread, gevent and asgi workers.\u003c/p\u003e\n\u003cp\u003eThis is for deployments where TLS is terminated by a proxy that speaks HTTP/2\nupstream, so the hop into gunicorn no longer drops to HTTP/1.1. Only peers in\n\u003ccode\u003eforwarded_allow_ips\u003c/code\u003e are considered; everyone else is served HTTP/1.x exactly\nas if the setting were off. Each mechanism is enabled separately, so turning one\non does not turn the other on.\u003c/p\u003e\n\u003cp\u003eDo not expose a cleartext HTTP/2 port to the internet.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eHTTP2Request\u003c/code\u003e built its headers straight from the stream, so nothing the HTTP/1\npath enforces applied over HTTP/2: the underscore and \u003ccode\u003eheader_map\u003c/code\u003e policy,\nduplicate \u003ccode\u003eHost\u003c/code\u003e and \u003ccode\u003eContent-Type\u003c/code\u003e, control characters in values, and the\n\u003ccode\u003eforwarded_allow_ips\u003c/code\u003e trust gate. An untrusted client could set \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e\nand forge \u003ccode\u003eHTTP_*\u003c/code\u003e entries in the WSGI environ, and decide \u003ccode\u003ewsgi.url_scheme\u003c/code\u003e\nthrough \u003ccode\u003e:scheme\u003c/code\u003e. Both request classes now share one policy mixin, and the\nscheme comes from the transport.\u003c/p\u003e\n\u003cp\u003eIf you serve HTTP/2, this is the reason to upgrade.\u003c/p\u003e\n\u003ch2\u003eOther HTTP/2 fixes\u003c/h2\u003e\n\u003cp\u003eWSGI responses were buffered whole before anything was sent; they stream now.\nHEAD, 204 and 304 no longer carry a body. Events read while blocked on a\nflow-control window were discarded, losing requests and body data outright.\n\u003ccode\u003esendfile()\u003c/code\u003e is refused on HTTP/2 responses rather than bypassing framing.\u003c/p\u003e\n\u003ch2\u003eRequest bodies dropped on Upgrade requests\u003c/h2\u003e\n\u003cp\u003eOn the ASGI worker with the fast parser, any request carrying an \u003ccode\u003eUpgrade\u003c/code\u003e\nheader reached the application with an empty body, whatever the header's value\nand with HTTP/2 switched off entirely. Fixed in \u003ccode\u003egunicorn_h1c\u003c/code\u003e 0.6.9, which the\n\u003ccode\u003efast\u003c/code\u003e extra now requires.\u003c/p\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://gunicorn.org/news/\"\u003ehttps://gunicorn.org/news/\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\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/benoitc/gunicorn/commit/36f2a3c1b80dfa41d70859d12c5bfbbdc23a3c38\"\u003e\u003ccode\u003e36f2a3c\u003c/code\u003e\u003c/a\u003e gunicorn 26.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbba3505f423bfb91af3a87e49ed9d232f39a8fe\"\u003e\u003ccode\u003ecbba350\u003c/code\u003e\u003c/a\u003e test: cover the h2c edge paths that had none\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/988541112ebcf3f795c020fc394aa7eed75f9f53\"\u003e\u003ccode\u003e9885411\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3703\"\u003e#3703\u003c/a\u003e from cormier/fix-inconsistency-in-control-socket-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/86f0919806a2d4d4cce376cc2088352e7643b139\"\u003e\u003ccode\u003e86f0919\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3704\"\u003e#3704\u003c/a\u003e from methane/doc-wsgi-h1c\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/585355122efe736946b977c5605e404ff2d6ddd4\"\u003e\u003ccode\u003e5853551\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3712\"\u003e#3712\u003c/a\u003e from Rotzbua/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7bce87e2aa29a4a794eb2b113ff811cad6a80736\"\u003e\u003ccode\u003e7bce87e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3700\"\u003e#3700\u003c/a\u003e from benoitc/fix/sponsor-logo-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/972dfb03b110c430712c32a3d92ef6397ff8eff6\"\u003e\u003ccode\u003e972dfb0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3690\"\u003e#3690\u003c/a\u003e from melbinjp/docs/contributing-settings-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7b3f16be8d9cc051538b7f0b58b236b37c9550f8\"\u003e\u003ccode\u003e7b3f16b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3711\"\u003e#3711\u003c/a\u003e from benoitc/docs/http2-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5bf237c0c7ef5bcdc63046645a17d6bafd609a34\"\u003e\u003ccode\u003e5bf237c\u003c/code\u003e\u003c/a\u003e http2: require gunicorn_h1c 0.6.9 and drop the upgrade body workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7cf03385c574228e28c4952fd410ed2df02acc94\"\u003e\u003ccode\u003e7cf0338\u003c/code\u003e\u003c/a\u003e test: skip the fast-parser cases when gunicorn_h1c is absent\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` 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[c]'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 `sentry-sdk` from 2.66.1 to 2.68.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.68.1\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003eenable_logs\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(logs) Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7237\"\u003e#7237\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e, our logging integrations for the standard library logging module as well as Loguru will auto-collect logs and send them to Sentry as Sentry logs by default, preserving old behavior. Turning automatic collection off for a specific integration can still be achieved using the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration option.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\nenable_logs=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nLoggingIntegration(capture_sentry_logs=True),\u003cbr /\u003e\nLoguruIntegration(capture_sentry_logs=False),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003ePlease note that the \u003ccode\u003eenable_logs\u003c/code\u003e option is deprecated and will be removed in the next major release. The \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API now works regardless of it, and auto-collection can be opted into via the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration-level options, which are \u003ccode\u003eFalse\u003c/code\u003e by default, unless you have \u003ccode\u003eenable_logs=True\u003c/code\u003e. We've added this compatibility layer to make the transition to a \u003ccode\u003eenable_logs\u003c/code\u003e-free world easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(django) Add \u003ccode\u003efailed_request_status_codes\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7140\"\u003e#7140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7207\"\u003e#7207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(google_genai) Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7210\"\u003e#7210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Use \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute when data collection is enabled by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7204\"\u003e#7204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langgraph,huggingface_hub) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7208\"\u003e#7208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7205\"\u003e#7205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai_agents) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7209\"\u003e#7209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.68.0\u003c/h2\u003e\n\u003ch3\u003eImportant\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWe're making \u003ccode\u003eenable_logs\u003c/code\u003e and \u003ccode\u003eenable_metrics\u003c/code\u003e no-op with this release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7177\"\u003e#7177\u003c/a\u003e), and they'll be dropped in the next major.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eenable_logs\u003c/code\u003e also controlled automatic logs collection from the logging and Loguru integrations. These integrations now get an integration-level \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e boolean option to allow for more control over the auto-collection. These options are \u003ccode\u003eFalse\u003c/code\u003e by default, i.e., \u003cstrong\u003enothing is auto-collected without your explicit opt-in\u003c/strong\u003e.\u003c/p\u003e\n\u003ch4\u003eAction Needed\u003c/h4\u003e\n\u003cp\u003eIf you had \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf you were using the \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API, no action necessary, the API will just work.\u003c/li\u003e\n\u003cli\u003eIf you were auto-collecting logs from either \u003ccode\u003eLoggingIntegration\u003c/code\u003e or \u003ccode\u003eLoguruIntegration\u003c/code\u003e, the auto-collection \u003cstrong\u003ewill be turned off in this release\u003c/strong\u003e. You can switch auto-collection on explicitly with:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.68.1\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003eenable_logs\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(logs) Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7237\"\u003e#7237\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e, our logging integrations for the standard library logging module as well as Loguru will auto-collect logs and send them to Sentry as Sentry logs by default, preserving old behavior. Turning automatic collection off for a specific integration can still be achieved using the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration option.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\nenable_logs=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nLoggingIntegration(capture_sentry_logs=True),\u003cbr /\u003e\nLoguruIntegration(capture_sentry_logs=False),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003ePlease note that the \u003ccode\u003eenable_logs\u003c/code\u003e option is deprecated and will be removed in the next major release. The \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API now works regardless of it, and auto-collection can be opted into via the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration-level options, which are \u003ccode\u003eFalse\u003c/code\u003e by default, unless you have \u003ccode\u003eenable_logs=True\u003c/code\u003e. We've added this compatibility layer to make the transition to a \u003ccode\u003eenable_logs\u003c/code\u003e-free world easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(django) Add \u003ccode\u003efailed_request_status_codes\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7140\"\u003e#7140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7207\"\u003e#7207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(google_genai) Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7210\"\u003e#7210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Use \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute when data collection is enabled by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7204\"\u003e#7204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langgraph,huggingface_hub) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7208\"\u003e#7208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7205\"\u003e#7205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai_agents) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7209\"\u003e#7209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.68.0\u003c/h2\u003e\n\u003ch3\u003eImportant\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWe're making \u003ccode\u003eenable_logs\u003c/code\u003e and \u003ccode\u003eenable_metrics\u003c/code\u003e no-op with this release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7177\"\u003e#7177\u003c/a\u003e), and they'll be dropped in the next major.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eenable_logs\u003c/code\u003e also controlled automatic logs collection from the logging and Loguru integrations. These integrations now get an integration-level \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e boolean option to allow for more control over the auto-collection. These options are \u003ccode\u003eFalse\u003c/code\u003e by default, i.e., \u003cstrong\u003enothing is auto-collected without your explicit opt-in\u003c/strong\u003e.\u003c/p\u003e\n\u003ch4\u003eAction Needed\u003c/h4\u003e\n\u003cp\u003eIf you had \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf you were using the \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API, no action necessary, the API will just work.\u003c/li\u003e\n\u003cli\u003eIf you were auto-collecting logs from either \u003ccode\u003eLoggingIntegration\u003c/code\u003e or \u003ccode\u003eLoguruIntegration\u003c/code\u003e, the auto-collection \u003cstrong\u003ewill be turned off in this release\u003c/strong\u003e. You can switch auto-collection on explicitly with:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\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/getsentry/sentry-python/commit/98f7d91809e71ed5a7b827f8b4f9acfc7ac1bae0\"\u003e\u003ccode\u003e98f7d91\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/8f886ff9b784da7c45f51a0dfbe42c7838e68c42\"\u003e\u003ccode\u003e8f886ff\u003c/code\u003e\u003c/a\u003e release: 2.68.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/df4ec02a1b4bfc50f6218908fe497dd0ec566801\"\u003e\u003ccode\u003edf4ec02\u003c/code\u003e\u003c/a\u003e fix(logs): Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e32031816394208bce58c050ff563bfde8d7b228\"\u003e\u003ccode\u003ee320318\u003c/code\u003e\u003c/a\u003e test(pyramid): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7218\"\u003e#7218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7b8a3857122d0a9c69aca784bd730bb0dcf729f6\"\u003e\u003ccode\u003e7b8a385\u003c/code\u003e\u003c/a\u003e test(bottle): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7217\"\u003e#7217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/cbcadc9cba1295fb78a90a2823d6fbd36bce1ba3\"\u003e\u003ccode\u003ecbcadc9\u003c/code\u003e\u003c/a\u003e test(sanic): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7216\"\u003e#7216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e42c798e0cd549b42bc748a53c7e16c2763ec427\"\u003e\u003ccode\u003ee42c798\u003c/code\u003e\u003c/a\u003e feat(tornado): Gate request body collection on data_collection option (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7215\"\u003e#7215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d05bb60e0d9ecc66b2cc8b62ba0cfc0eaa343088\"\u003e\u003ccode\u003ed05bb60\u003c/code\u003e\u003c/a\u003e test(django): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7213\"\u003e#7213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/bcce67b1a6869229a0c74bcd93e4b8bcfde5cc7a\"\u003e\u003ccode\u003ebcce67b\u003c/code\u003e\u003c/a\u003e feat(wsgi): Gate request body collection on data_collection option (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7212\"\u003e#7212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/41220c4adba83c307aabae28057db830808adb3a\"\u003e\u003ccode\u003e41220c4\u003c/code\u003e\u003c/a\u003e fix(google_genai): Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, no...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.66.1...2.68.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.52.0 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[standard]'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\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\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.2...0.52.3\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.2...0.52.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\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.1...0.52.2\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eContent-Type\u003c/code\u003e and \u003ccode\u003eContent-Length\u003c/code\u003e headers from WebSocket denial responses on the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, and deliver non-UTF-8 denial bodies intact (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3041\"\u003e#3041\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.0...0.52.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.0...0.52.1\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[standard]'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\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eContent-Type\u003c/code\u003e and \u003ccode\u003eContent-Length\u003c/code\u003e headers from WebSocket denial responses on the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, and deliver non-UTF-8 denial bodies intact (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3041\"\u003e#3041\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\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a68da608147c5f79d962352dce11de8f6e32d972\"\u003e\u003ccode\u003ea68da60\u003c/code\u003e\u003c/a\u003e Version 0.52.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3068\"\u003e#3068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6e3bb4c5c22531c16d341f2da49f2653307f412f\"\u003e\u003ccode\u003e6e3bb4c\u003c/code\u003e\u003c/a\u003e Use zttp 0.0.24 fast receive path (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.0...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.2 to 7.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.16.0\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.0 — 2026-08-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen combining files, now path separator slashes will automatically be converted to the local file system style. This makes it less necessary to define \u003ccode\u003e[paths]\u003c/code\u003e configuration to combine data across operating systems. Fixes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2266\"\u003eissue 2266\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://coverage.readthedocs.io/en/latest/api_coverage.html#coverage.Coverage.switch_context\"\u003eCoverage.switch_context()\u003c/a\u003e method now returns the previous context.\u003c/li\u003e\n\u003cli\u003eFix: previously, a \u003ccode\u003e[paths]\u003c/code\u003e pattern would be replaced everywhere in a file path when it was only meant to be replaced once, in the leading portion of the path. This is now fixed, in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2268\"\u003epull 2268\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixes to validation of options and configuration settings:\n\u003cul\u003e\n\u003cli\u003eNegative precision settings now always cause useful error messages (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2261\"\u003epull 2261\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAn invalid regex in the \u003ccode\u003e--contexts\u003c/code\u003e option (or the \u003ccode\u003e[report] contexts\u003c/code\u003e setting) reported a confusing “Couldn’t use data file …: user-defined function raised exception” error. Now it raises a proper configuration error naming the bad regex, like other regex settings do (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2262\"\u003epull 2262\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eNon-string values in TOML configuration settings now produce a helpful error message instead of a traceback. This affects list settings whose elements aren’t strings (like \u003ccode\u003eomit\u003c/code\u003e, \u003ccode\u003eexclude_lines\u003c/code\u003e, or a \u003ccode\u003e[paths]\u003c/code\u003e entry), file settings like \u003ccode\u003edata_file\u003c/code\u003e, and any wrong-typed value in the \u003ccode\u003e[paths]\u003c/code\u003e section (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2263\"\u003epull 2263\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage run\u003c/code\u003e refuses run-affecting command-line options like \u003ccode\u003e--branch\u003c/code\u003e alongside \u003ccode\u003e--concurrency=multiprocessing\u003c/code\u003e, since they can’t reach the subprocesses. The check only recognized \u003ccode\u003emultiprocessing\u003c/code\u003e as the entire option value, so \u003ccode\u003e--concurrency=multiprocessing,thread\u003c/code\u003e slipped through and failed later with “Can’t combine statement coverage data with branch data”. Each named concurrency library is now properly considered (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2270\"\u003epull 2270\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: \u003ccode\u003ecoverage annotate -d DIR\u003c/code\u003e raised an \u003ccode\u003eAssertionError\u003c/code\u003e if any measured file had an extension other than \u003ccode\u003e.py\u003c/code\u003e, such as a \u003ccode\u003e.pyw\u003c/code\u003e file on Windows. The original extension is now restored on the annotated copy (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2265\"\u003epull 2265\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.16.0\"\u003ecoverage 7.16.0\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.16.0\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.15.4\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in the HTML report, a source file name containing a double quote (legal on POSIX) wasn’t escaped where it’s dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index and prev/next links, so it could close the attribute early and inject markup. Page URLs are now escaped. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: the LCOV report wrote file names and other fields into its line-oriented records without neutralizing control characters. A measured file whose name contained a newline (legal on POSIX) could forge extra records, inflating the coverage seen by tools that read the report. Control characters in a field are now replaced. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWheels are now provided for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.4\"\u003ecoverage 7.15.4\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.4\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.15.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.3 — 2026-08-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: the sysmon core is incompatible with dynamic contexts. Previously, the combination would be prevented when read from the coverage.py configuration. But using the context API as pytest-cov does, contexts would be silently dropped. Now a warning is issued, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2234\"\u003eJisang Han\u003c/a\u003e. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2200\"\u003eissue 2200\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA performance improvement in the low-level line number bookkeeping when combining data files, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2239\"\u003eKevin Turcios\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance improvement in HTML reporting by reducing the number of times files have to be parsed, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2240\"\u003eKevin Turcios\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.3\"\u003ecoverage 7.15.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.3\u003c/code\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/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.16.0 — 2026-08-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWhen combining files, now path separator slashes will automatically be\nconverted to the local file system style. This makes it less necessary to\ndefine \u003ccode\u003e[paths]\u003c/code\u003e configuration to combine data across operating systems.\nFixes \u003ccode\u003eissue 2266\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe :meth:\u003ccode\u003e.Coverage.switch_context\u003c/code\u003e method now returns the previous context.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: previously, a \u003ccode\u003e[paths]\u003c/code\u003e pattern would be replaced everywhere in a file\npath when it was only meant to be replaced once, in the leading portion of\nthe path. This is now fixed, in \u003ccode\u003epull 2268\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes to validation of options and configuration settings:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNegative precision settings now always cause useful error messages (\u003ccode\u003epull 2261\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAn invalid regex in the \u003ccode\u003e--contexts\u003c/code\u003e option (or the \u003ccode\u003e[report] contexts\u003c/code\u003e setting) reported a confusing \u0026quot;Couldn't use data file ...:\nuser-defined function raised exception\u0026quot; error. Now it raises a proper\nconfiguration error naming the bad regex, like other regex settings do\n(\u003ccode\u003epull 2262\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNon-string values in TOML configuration settings now produce a helpful\nerror message instead of a traceback.  This affects list settings whose\nelements aren't strings (like \u003ccode\u003eomit\u003c/code\u003e, \u003ccode\u003eexclude_lines\u003c/code\u003e, or a \u003ccode\u003e[paths]\u003c/code\u003e\nentry), file settings like \u003ccode\u003edata_file\u003c/code\u003e, and any wrong-typed value in the\n\u003ccode\u003e[paths]\u003c/code\u003e section (\u003ccode\u003epull 2263\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecoverage run\u003c/code\u003e refuses run-affecting command-line options like\n\u003ccode\u003e--branch\u003c/code\u003e alongside \u003ccode\u003e--concurrency=multiprocessing\u003c/code\u003e, since they can't\nreach the subprocesses.  The check only recognized \u003ccode\u003emultiprocessing\u003c/code\u003e as\nthe entire option value, so \u003ccode\u003e--concurrency=multiprocessing,thread\u003c/code\u003e\nslipped through and failed later with \u0026quot;Can't combine statement coverage\ndata with branch data\u0026quot;.  Each named concurrency library is now properly\nconsidered (\u003ccode\u003epull 2270\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003ecoverage annotate -d DIR\u003c/code\u003e raised an \u003ccode\u003eAssertionError\u003c/code\u003e if any\nmeasured file had an extension other than \u003ccode\u003e.py\u003c/code\u003e, such as a \u003ccode\u003e.pyw\u003c/code\u003e file on\nWindows.  The original extension is now restored on the annotated copy (\u003ccode\u003epull 2265\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2261: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2261\"\u003ecoveragepy/coveragepy#2261\u003c/a\u003e\n.. _pull 2262: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2262\"\u003ecoveragepy/coveragepy#2262\u003c/a\u003e\n.. _pull 2263: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2263\"\u003ecoveragepy/coveragepy#2263\u003c/a\u003e\n.. _pull 2265: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2265\"\u003ecoveragepy/coveragepy#2265\u003c/a\u003e\n.. _issue 2266: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2266\"\u003ecoveragepy/coveragepy#2266\u003c/a\u003e\n.. _pull 2268: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2268\"\u003ecoveragepy/coveragepy#2268\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3e9fc1653ef31089d02eb7618b9d9ac9414378fc\"\u003e\u003ccode\u003e3e9fc16\u003c/code\u003e\u003c/a\u003e docs: prep for 7.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/38be8d13afee6b6525492fc375c739cdfb675e9b\"\u003e\u003ccode\u003e38be8d1\u003c/code\u003e\u003c/a\u003e build: control check-manifest explicitly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8eb1266ead5c6d356d3437637a509ff86b566253\"\u003e\u003ccode\u003e8eb1266\u003c/code\u003e\u003c/a\u003e docs(build): no longer commit sample_html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1a8b3fa57d56bb70bad62c93d224c18a0fbaae6f\"\u003e\u003ccode\u003e1a8b3fa\u003c/code\u003e\u003c/a\u003e docs: remove sample_html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/aeaa79b812d1bc637ebb5582ab12c076e192c87e\"\u003e\u003ccode\u003eaeaa79b\u003c/code\u003e\u003c/a\u003e docs: linklint is now sphinx-linklint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5eaf3f6d38f58746bc69e87e64c0b0277a9077d\"\u003e\u003ccode\u003ed5eaf3f\u003c/code\u003e\u003c/a\u003e test: a branchless way to re-add extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57e52fd431cecc1ca03de2c5b1288e0b330c2ef4\"\u003e\u003ccode\u003e57e52fd\u003c/code\u003e\u003c/a\u003e docs: adjust CHANGES for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b9d304d77f7ce3d55df3a46339dbc56d1f49df58\"\u003e\u003ccode\u003eb9d304d\u003c/code\u003e\u003c/a\u003e fix: check for multiprocessing in a --concurrency list (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2270\"\u003e#2270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6ef9284afbc7d1f392821864b64ddbda0051fc5\"\u003e\u003ccode\u003ea6ef928\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/070461fcfde0437b5b778c2c2a72e433a0a391aa\"\u003e\u003ccode\u003e070461f\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2271\"\u003e#2271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.15.2...7.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize TaskResult in the Tasks panel to accommodate the storage mechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel’s kwargs column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize the TaskResult class for Tasks panel. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2444\"\u003edjango-commons/django-debug-toolbar#2444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via Django’s built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On older versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django’s boolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that can resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container network.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without parameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not find the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked before the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the Django version check in the SQL panel by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2403\"\u003edjango-commons/django-debug-toolbar#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix some small issues in docs/installation.rst by \u003ca href=\"https://github.com/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilence the MiddlewareMixin deprecation warning explicitly by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2416\"\u003edjango-commons/django-debug-toolbar#2416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tasks panel showing tasks queued during the request by \u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests by \u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2435\"\u003edjango-commons/django-debug-toolbar#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_toolbar_with_docker on runtimes with unrelated host address by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove selenium tests reliability in CI by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2438\"\u003edjango-commons/django-debug-toolbar#2438\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/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1 (2026-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize \u003ccode\u003eTaskResult\u003c/code\u003e in the Tasks panel to accommodate the storage\nmechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel's \u003ccode\u003ekwargs\u003c/code\u003e column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-08-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via\nDjango's built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On\nolder versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django's\nboolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that\ncan resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container\nnetwork.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without\nparameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not\nfind the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked\nbefore the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003cli\u003eImproved cache hit/miss reporting in the Cache panel for \u003ccode\u003ecache.get()\u003c/code\u003e\ncalls with a supplied default value, while documenting the remaining\nambiguity when a cached value equals the supplied default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f307de14d1a533273b6de7bd39579b043eb54a99\"\u003e\u003ccode\u003ef307de1\u003c/code\u003e\u003c/a\u003e Version 7.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/73951a4c517bafa5369228f2fca8306510f1cbf1\"\u003e\u003ccode\u003e73951a4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2439\"\u003e#2439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/678b687e0a30c2657dc21b1d859d1141098997a0\"\u003e\u003ccode\u003e678b687\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2442\"\u003e#2442\u003c/a\u003e)...\n\n_Description has been truncated_","html_url":"https://github.com/tchongwangbakayoko619-star/Plateforme-de-gestion-d-v-nements-universitaires/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchongwangbakayoko619-star%2FPlateforme-de-gestion-d-v-nements-universitaires/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"},{"uuid":"5322769191","node_id":"PR_kwDOI7xefs8AAAABB4aMlQ","number":54938,"state":"closed","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["rocm","ci/build","cpu","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-03T09:49:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-02T10:31:41.000Z","updated_at":"2026-09-03T09:49:24.000Z","time_to_close":83861,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere","old_version":"7.0.8","new_version":"7.1.0","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.4","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.28.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.83` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.83` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.0` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.28.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.28.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.git...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/54938","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/54938","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/54938/packages"},{"uuid":"5315274331","node_id":"PR_kwDOS1nMV88AAAABByeeEQ","number":26,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-01T18:17:39.000Z","updated_at":"2026-09-01T18:17:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.4","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"nvidia-cutlass-dsl","old_version":"4.4.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.83` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.83` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.8.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.4.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.5` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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.128.0 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.128.0...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.13.3 to 3.14.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst\"\u003eaiohttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.14.3 (2026-07-22)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the client dropping only the first \u003ccode\u003eAuthorization\u003c/code\u003e, \u003ccode\u003eCookie\u003c/code\u003e and\n\u003ccode\u003eProxy-Authorization\u003c/code\u003e header when a redirect crossed an origin -- by :user:\u003ccode\u003earshsmith1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13180\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error message construction in the C HTTP parser -- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13222\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e3.14.2 (2026-07-20)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed :py:attr:\u003ccode\u003e~aiohttp.web.StreamResponse.last_modified\u003c/code\u003e rounding a\n:class:\u003ccode\u003edatetime.datetime\u003c/code\u003e with a fractional second down.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5303\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed resolving \u003ccode\u003elocalhost\u003c/code\u003e on Windows to fall back without \u003ccode\u003eAI_ADDRCONFIG\u003c/code\u003e\nwhen the first lookup fails, so \u003ccode\u003elocalhost\u003c/code\u003e still works without an active\nnetwork.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5357\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/5e392ce0456f5235a4ee6ad46f0e806df2f15873\"\u003e\u003ccode\u003e5e392ce\u003c/code\u003e\u003c/a\u003e Release v3.14.3 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13225\"\u003e#13225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d\"\u003e\u003ccode\u003e49f65d5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13222\"\u003e#13222\u003c/a\u003e/f4866933 backport][3.14] Build C parser error message from bounded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/240099e5216a01b32919dcd8dd5c6c0b1bf83671\"\u003e\u003ccode\u003e240099e\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13180\"\u003e#13180\u003c/a\u003e/ee53d655 backport][3.14] drop every copy of credential headers on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/d93f30a302f8b930074fe14a2be7b2088ba28111\"\u003e\u003ccode\u003ed93f30a\u003c/code\u003e\u003c/a\u003e Bump version (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13202\"\u003e#13202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/c1b9212ad3d93c24b5fc66ad0849597166bc816e\"\u003e\u003ccode\u003ec1b9212\u003c/code\u003e\u003c/a\u003e Release v3.14.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13201\"\u003e#13201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/380d4b55e8df48dfd62f1addfb530426f6bc4106\"\u003e\u003ccode\u003e380d4b5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13054\"\u003e#13054\u003c/a\u003e/ed8b040c backport][3.14] escape backslashes in digest auth quoted-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/e1e1bee363dfba04a9a75c8801717da2ed5bdcb9\"\u003e\u003ccode\u003ee1e1bee\u003c/code\u003e\u003c/a\u003e Make llhttp method array size dynamic (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13174\"\u003e#13174\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13196\"\u003e#13196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/aa4cf29b6a5ad6f4d21fa1dd3f69193dc2f5d505\"\u003e\u003ccode\u003eaa4cf29\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13170\"\u003e#13170\u003c/a\u003e/2b906869 backport][3.14] Fix StreamResponse.last_modified rounding...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/71b57b40d85a0723c92b0a5a37ebdf518210d2ea\"\u003e\u003ccode\u003e71b57b4\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13172\"\u003e#13172\u003c/a\u003e/a57747ed backport][3.14] Fix C parser folding fragment into query_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/64a03fb620b623e5a5a1b7103c07ae3e536a0d40\"\u003e\u003ccode\u003e64a03fb\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13169\"\u003e#13169\u003c/a\u003e/1adc0cd7 backport][3.14] Upgrade http:// to https:// in README.rst...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohttp/compare/v3.13.3...v3.14.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 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\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/chenli2020/AiInfraProject/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenli2020%2FAiInfraProject/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"},{"uuid":"5299457150","node_id":"PR_kwDORjYFXs8AAAABBlzJhA","number":429,"state":"closed","title":"Bump the minor-update group across 1 directory with 136 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-01T21:59:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T11:09:57.000Z","updated_at":"2026-09-01T21:59:28.000Z","time_to_close":125369,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":136,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tpu-inference","old_version":"0.27.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.82","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.82","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.15.1.9","new_version":"9.25.0.15"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"torchaudio","old_version":"2.10.0","new_version":"2.11.0+cpu"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.1","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 136 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.1` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.27.0` | `0.28.0` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.82` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.82` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.15.1.9` | `9.25.0.15` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| torchaudio | `2.10.0` | `2.11.0+cpu` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003cp\u003eNo changes since 4.16.0rc2.\u003c/p\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc2\u003c/h2\u003e\n\u003cp\u003eChanges since 4.16.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003c/ul\u003e\n\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/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.16.0 (July 2, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.16.0rc2.\u003c/p\u003e\n\u003ch1\u003eRelease 4.16.0rc2 (June 25, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on\nPython 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.16.0rc1 (June 24, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable.\nBackport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting\nkeys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols\nas bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that\ncalling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or\n\u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different\nresult in some situations depending on whether or not a profiling function had been\nset using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations.\nPatch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving\nan \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on\nPython 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the\n\u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since\n\u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters\nto \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e\nparameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the\nname that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15.\n\u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards\ncompatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument\nto the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa\"\u003e\u003ccode\u003ef29cd28\u003c/code\u003e\u003c/a\u003e Prepare relase 4.16.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b\"\u003e\u003ccode\u003e4317461\u003c/code\u003e\u003c/a\u003e Bump version to 4.16.0rc2.dev (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/772\"\u003e#772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9\"\u003e\u003ccode\u003e4f71098\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc2 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/771\"\u003e#771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2\"\u003e\u003ccode\u003e37ed08a\u003c/code\u003e\u003c/a\u003e Remove use of \u003ccode\u003easyncio.coroutines.iscoroutinefunction()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601\"\u003e\u003ccode\u003e8dcc559\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eTypedDict\u003c/code\u003e documentation (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f\"\u003e\u003ccode\u003e224f8d5\u003c/code\u003e\u003c/a\u003e Post-release followups for 3.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f\"\u003e\u003ccode\u003e777de3e\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c\"\u003e\u003ccode\u003e890be90\u003c/code\u003e\u003c/a\u003e Type variable tuple variance (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d\"\u003e\u003ccode\u003e0e05458\u003c/code\u003e\u003c/a\u003e Pin SQLAlchemy third-party tests to pytest==9.0.3 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229\"\u003e\u003ccode\u003ed277746\u003c/code\u003e\u003c/a\u003e docs: add version compatibility table (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.15.0...4.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tpu-inference` from 0.27.0 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/9eca2a5a7edae158456cbae2b28ea77ea7c05da9\"\u003e\u003ccode\u003e9eca2a5\u003c/code\u003e\u003c/a\u003e update docs for v0.28.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/9101adb6d3f95c223d6be9930c96263179302801\"\u003e\u003ccode\u003e9101adb\u003c/code\u003e\u003c/a\u003e [releases/v0.28.0] Cherry-pick \u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3446\"\u003e#3446\u003c/a\u003e: mark Qwen2.5-VL-7B benchmarks unverifie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/dacd27d15d5063eac1a7ce7ee427c945ccef4c3a\"\u003e\u003ccode\u003edacd27d\u003c/code\u003e\u003c/a\u003e Update verified commit hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/b8692ff01fa191343836996c27a39dc95f008b88\"\u003e\u003ccode\u003eb8692ff\u003c/code\u003e\u003c/a\u003e [skip ci] Update nightly support matrices for vllm (v6e/v7x)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/3582484df2707e40b3bc21af3ae83c8eb41d1498\"\u003e\u003ccode\u003e3582484\u003c/code\u003e\u003c/a\u003e [tpu-inference] Add block-diffusion strategy configuration (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3242\"\u003e#3242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/7482cf9b3635455011c469a9fe3b1beeca8d27b3\"\u003e\u003ccode\u003e7482cf9\u003c/code\u003e\u003c/a\u003e Update verified commit hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/0fbf23af42c63ae3fdf9a5b6567a42297e40b751\"\u003e\u003ccode\u003e0fbf23a\u003c/code\u003e\u003c/a\u003e [skip ci] Update nightly support matrices (v6e/v7x)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/d253b79e6f7f38be99481274704784c2b2eaa293\"\u003e\u003ccode\u003ed253b79\u003c/code\u003e\u003c/a\u003e Use tokamax release version to unblock TPU-inference release. (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/57987c2298fb44e75a3919d5c4cf31c9e5dd9a7e\"\u003e\u003ccode\u003e57987c2\u003c/code\u003e\u003c/a\u003e [Fix] Reduce shared-expert output over in-group TP under attention DP (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3435\"\u003e#3435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/ee1e17a124488cd5ec27f4ded8b757e5507fedef\"\u003e\u003ccode\u003eee1e17a\u003c/code\u003e\u003c/a\u003e [gemma4] Fix torchax-path E2B/E4B accuracy: inline PLE + skip KV-cache writes...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vllm-project/tpu-inference/compare/v0.27.0...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `annotated-types` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/annotated-types/annotated-types/releases\"\u003eannotated-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename DocInfo to Doc by \u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring of \u003ccode\u003eTimezone\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/annotated-types/annotated-types/...\n\n_Description has been truncated_","html_url":"https://github.com/1CatAI/1Cat-vLLM/pull/429","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1CatAI%2F1Cat-vLLM/issues/429","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/429/packages"},{"uuid":"5288172150","node_id":"PR_kwDOUHnnfc8AAAABBdTuOQ","number":10,"state":"closed","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-05T18:29:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-29T18:27:52.000Z","updated_at":"2026-09-05T18:29:36.000Z","time_to_close":604902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\u003ccod...\n\n_Description has been truncated_","html_url":"https://github.com/POWEHI2023/vLLM-Learning/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/POWEHI2023%2FvLLM-Learning/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5283591868","node_id":"PR_kwDOUHlKes8AAAABBZ10PA","number":5,"state":"closed","title":"build(deps): bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-05T05:19:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-29T01:02:20.000Z","updated_at":"2026-09-05T05:19:14.000Z","time_to_close":620212,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.15.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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/1...\n\n_Description has been truncated_","html_url":"https://github.com/Entrpi/vllm-glm-5.3-flash-spark/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Entrpi%2Fvllm-glm-5.3-flash-spark/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"5282809094","node_id":"PR_kwDOUGxIMM8AAAABBZOO8g","number":10,"state":"closed","title":"Bump the minor-update group across 1 directory with 178 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T22:10:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T22:31:06.000Z","updated_at":"2026-09-04T22:10:56.000Z","time_to_close":603589,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":178,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"b12x","old_version":"1.2.4","new_version":"1.3.0"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 178 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| b12x | `1.2.4` | `1.3.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlet...\n\n_Description has been truncated_","html_url":"https://github.com/codesque16/vllm28PP_patch/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codesque16%2Fvllm28PP_patch/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5281543405","node_id":"PR_kwDOMOIerM8AAAABBYN6Lg","number":102,"state":"closed","title":"Bump the minor-update group across 1 directory with 182 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T19:04:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T19:22:11.000Z","updated_at":"2026-09-04T19:04:42.000Z","time_to_close":603749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":182,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.13.1","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.25.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.1","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.22.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 182 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.13.1` | `5.15.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.25.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.22.0` | `1.28.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.1.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.13.1 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.13.1...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003e#3421\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003e#3419\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003e#3420\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e to 128 KiB in \u003ccode\u003eGZipResponder\u003c/code\u003e, keeping it usable without the new keyword argument \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3415\"\u003e#3415\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOffload large GZip compression to a worker thread, keeping the event loop respon...\n\n_Description has been truncated_","html_url":"https://github.com/gonka-ai/vllm/pull/102","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonka-ai%2Fvllm/issues/102","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/102/packages"},{"uuid":"5281464651","node_id":"PR_kwDOUGq5rs8AAAABBYJ2UA","number":10,"state":"closed","title":"Bump the minor-update group with 177 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T18:52:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T19:11:45.000Z","updated_at":"2026-09-04T18:52:09.000Z","time_to_close":603622,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":177,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 177 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehtt...\n\n_Description has been truncated_","html_url":"https://github.com/yhfgyyf/vllm-GLM-5.3-Flash-sm120/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhfgyyf%2Fvllm-GLM-5.3-Flash-sm120/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"5273791861","node_id":"PR_kwDOTbO7F88AAAABBSDozg","number":17,"state":"closed","title":"Bump the minor-update group across 1 directory with 171 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T01:25:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T01:38:54.000Z","updated_at":"2026-09-04T01:25:38.000Z","time_to_close":604002,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":171,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.1","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.10","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.1","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.0.15"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.1","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 171 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.15.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.2` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.10` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.28.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.1` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.0.15` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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://redire...\n\n_Description has been truncated_","html_url":"https://github.com/codecookinging/vllm_marlin/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecookinging%2Fvllm_marlin/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5243643953","node_id":"PR_kwDOUDghOM8AAAABA6DMVw","number":5,"state":"closed","title":"Bump the python group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T14:38:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-25T08:22:03.000Z","updated_at":"2026-09-04T14:38:05.000Z","time_to_close":886560,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":15,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"djangorestframework","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"coverage","old_version":"7.15.3","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.7","new_version":"6.1.0"},{"name":"django-upgrade","old_version":"1.31.1","new_version":"1.32.0","repository_url":"https://github.com/adamchainz/django-upgrade"},{"name":"djangorestframework-stubs","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"djlint","old_version":"1.43.2","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.17.1` | `3.18.0` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.1.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.3` | `7.15.4` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.7` | `6.1.0` |\n| [django-upgrade](https://github.com/adamchainz/django-upgrade) | `1.31.1` | `1.32.0` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.17.1` | `3.18.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.43.2` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.4` |\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Django 4.2, Django 5.0 and Django 5.1 by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9899\"\u003eencode/django-rest-framework#9899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange errors for list serializers (\u003ccode\u003emany=True\u003c/code\u003e) to dict format by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9837\"\u003eencode/django-rest-framework#9837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eunaccent\u003c/code\u003e to \u003ccode\u003eSearchFilter\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9385\"\u003eencode/django-rest-framework#9385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10003\"\u003eencode/django-rest-framework#10003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@throttle_scope\u003c/code\u003e function based view decorator by \u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enulls_distinct\u003c/code\u003e support to \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003echoices\u003c/code\u003e param for non-editable fields by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9929\"\u003eencode/django-rest-framework#9929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove cursor pagination template accessibility in browsable API by \u003ca href=\"https://github.com/kosbemrunal\"\u003e\u003ccode\u003e@​kosbemrunal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9905\"\u003eencode/django-rest-framework#9905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix partial form data updates involving \u003ccode\u003eListField\u003c/code\u003e by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9902\"\u003eencode/django-rest-framework#9902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash due to browsable API extra action permissions by \u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle unhashable \u003ccode\u003eBooleanField\u003c/code\u003e representation value by \u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAPI schema for zero numeric bounds on ListField children by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ecc_delim_re usage\u003c/code\u003e with \u003ccode\u003esplit_header_value\u003c/code\u003e for Django 6.1+ compatibility by \u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eset_rollback\u003c/code\u003e to only rollback initialized connections by \u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DictField HTML input returning empty dict for missing fields by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise clear error for unsupported unique-together list updates by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9981\"\u003eencode/django-rest-framework#9981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrepare release 3.18.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/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\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/Im-Bilal\"\u003e\u003ccode\u003e@​Im-Bilal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9967\"\u003eencode/django-rest-framework#9967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harshitkandpal\"\u003e\u003ccode\u003e@​harshitkandpal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9993\"\u003eencode/django-rest-framework#9993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/udit-prabhakar\"\u003e\u003ccode\u003e@​udit-prabhakar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9962\"\u003eencode/django-rest-framework#9962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sai09111995\"\u003e\u003ccode\u003e@​sai09111995\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9884\"\u003eencode/django-rest-framework#9884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Elkasitu\"\u003e\u003ccode\u003e@​Elkasitu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8494\"\u003eencode/django-rest-framework#8494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vishalanandl177\"\u003e\u003ccode\u003e@​vishalanandl177\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10002\"\u003eencode/django-rest-framework#10002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anurag12anu\"\u003e\u003ccode\u003e@​anurag12anu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9814\"\u003eencode/django-rest-framework#9814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/11875a38f483cea69d8ef2fd9ede6b96fb602ec4\"\u003e\u003ccode\u003e11875a3\u003c/code\u003e\u003c/a\u003e Prepare release 3.18.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/d346a8c3c92a36fdb462c992331e238d0a737305\"\u003e\u003ccode\u003ed346a8c\u003c/code\u003e\u003c/a\u003e Add note about Browsable API simulating \u003ccode\u003ePOST\u003c/code\u003e in documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9814\"\u003e#9814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/80d535ddf08226020a9f44ca57f6eb1bbd91fa6a\"\u003e\u003ccode\u003e80d535d\u003c/code\u003e\u003c/a\u003e Fix GHA workflow for preparing release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/aa1876b8b6009a618e6241f91e2c2d6dfbacb5d9\"\u003e\u003ccode\u003eaa1876b\u003c/code\u003e\u003c/a\u003e Update fields.md explaining how the \u003ccode\u003esource\u003c/code\u003e argument affects `.validated_dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/000bb334f7995a972e700f81fbdbd50a80f38985\"\u003e\u003ccode\u003e000bb33\u003c/code\u003e\u003c/a\u003e Add nulls_distinct support to UniqueTogetherValidator (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9866\"\u003e#9866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7508e0cf122d5250a2cba824a3c537a288acb489\"\u003e\u003ccode\u003e7508e0c\u003c/code\u003e\u003c/a\u003e Raise clear error for unsupported list update validation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9981\"\u003e#9981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/69d1cd7f1322060397b7f747d199e3926f5d297b\"\u003e\u003ccode\u003e69d1cd7\u003c/code\u003e\u003c/a\u003e Fix DictField HTML input returning empty dict for missing fields (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9891\"\u003e#9891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/bbc62aca6f67a2a7fe0427a768973f5d9f143c58\"\u003e\u003ccode\u003ebbc62ac\u003c/code\u003e\u003c/a\u003e Update Django 6.1 dependency to stable release. (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f78043440a7884936232fdffffb68adcdbb3b272\"\u003e\u003ccode\u003ef780434\u003c/code\u003e\u003c/a\u003e Add GHA workflow to prepare a release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/dc027d2bb41c3858fc2fc95bf2b04b33f0cdc5be\"\u003e\u003ccode\u003edc027d2\u003c/code\u003e\u003c/a\u003e set_rollback should only rollback initialized connections (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9599\"\u003e#9599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\u003c/code\u003e\nare treated as patterns, so \u003ccode\u003eui/*/config.json\u003c/code\u003e watches every view's config\nwithout listing them one by one. Patterns are re-expanded on every reload\ncheck rather than once at startup, so a file created later starts being\nwatched without restarting gunicorn, and \u003ccode\u003e**\u003c/code\u003e recurses. A pattern matching\nnothing warns instead of failing, since with live expansion it may match later\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/1643\"\u003e#1643\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3662\"\u003e#3662\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency floors raised past known advisories\u003c/strong\u003e: every declared floor was\nchecked against the advisory database. \u003ccode\u003etornado\u003c/code\u003e, \u003ccode\u003eh2\u003c/code\u003e, \u003ccode\u003esetuptools\u003c/code\u003e and\n\u003ccode\u003epymdown-extensions\u003c/code\u003e permitted vulnerable versions and now require the first\nclean release; \u003ccode\u003epytest\u003c/code\u003e and \u003ccode\u003ehttpx\u003c/code\u003e were unpinned and now carry floors. The\n\u003ccode\u003etornado\u003c/code\u003e example pinned \u003ccode\u003etornado\u0026lt;6\u003c/code\u003e, which was both the source of several\nadvisories and older than the \u003ccode\u003e\u0026gt;=6.5.0\u003c/code\u003e the tornado worker needs, so the\nexample could not run as pinned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSIGHUP did not reload the logger configuration\u003c/strong\u003e: \u003ccode\u003eArbiter.reload()\u003c/code\u003e\nre-read the configuration file but kept using the logger built at startup,\ncalling only \u003ccode\u003ereopen_files()\u003c/code\u003e on its existing handlers. Changes to\n\u003ccode\u003elogconfig\u003c/code\u003e, \u003ccode\u003elogconfig_dict\u003c/code\u003e, \u003ccode\u003elogconfig_json\u003c/code\u003e and \u003ccode\u003eloglevel\u003c/code\u003e were ignored\nuntil a full restart, which in containers meant replacing the pod. The\nexisting logger now re-runs its setup on reload, so new handlers, formats\nand levels take effect while the process identity and its listeners are\npreserved, and re-running the setup no longer stacks duplicate syslog\nhandlers. An invalid log configuration on reload is not fatal either: the\nerror is reported on stderr, the previous working configuration is restored\nand the master keeps running with it\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3353\"\u003e#3353\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTruncated chunked bodies accepted\u003c/strong\u003e: RFC 9112 section 7.1.2 ends a chunked\nbody with \u003ccode\u003e0 CRLF CRLF\u003c/code\u003e, the second CRLF being the mandatory empty trailer\nsection. \u003ccode\u003eChunkedReader.parse_chunk_size()\u003c/code\u003e swallowed the \u003ccode\u003eNoMoreData\u003c/code\u003e raised\nwhile scanning for it, so a body cut short right after the last chunk line was\ntreated as complete instead of rejected. It now raises\n\u003ccode\u003eChunkMissingTerminator\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3382\"\u003e#3382\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3685\"\u003e#3685\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e--spew\u003c/code\u003e crashed on dynamically generated code\u003c/strong\u003e: the trace hook indexed the\n2-tuple returned by \u003ccode\u003einspect.getsourcelines()\u003c/code\u003e by line number rather than\nindexing the list of lines, so a frame with no \u003ccode\u003e__file__\u003c/code\u003e raised\n\u003ccode\u003eAttributeError: 'int' object has no attribute 'rstrip'\u003c/code\u003e on line 1 and\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/benoitc/gunicorn/commit/71b59a75820dd4a762dc42a3280124168b4e44a8\"\u003e\u003ccode\u003e71b59a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3698\"\u003e#3698\u003c/a\u003e from benoitc/fix/docker-health-check-readerror\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/48287de8d8360825c85ac981ddfe9c80dba3b418\"\u003e\u003ccode\u003e48287de\u003c/code\u003e\u003c/a\u003e test: catch every transport error in the docker health check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3110e8c37f716ca0ed63ca7f80c7c9ea0fbbdd50\"\u003e\u003ccode\u003e3110e8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3696\"\u003e#3696\u003c/a\u003e from benoitc/docs/roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cc56c410b7103c1f2b877279f81cb3a14705315a\"\u003e\u003ccode\u003ecc56c41\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3693\"\u003e#3693\u003c/a\u003e from benoitc/release/26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5cf1f1651a40fa36afe13fde623e3437ca872463\"\u003e\u003ccode\u003e5cf1f16\u003c/code\u003e\u003c/a\u003e docs: surface the roadmap on the site home page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7e35f72d135056c37da321becf22b19aeec06937\"\u003e\u003ccode\u003e7e35f72\u003c/code\u003e\u003c/a\u003e docs: add FastCGI to the roadmap and point items at Ideas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/18ddc586c9b9513b25e92c6ed6f818f66ff3abcd\"\u003e\u003ccode\u003e18ddc58\u003c/code\u003e\u003c/a\u003e docs: drop the framework and reverse-proxy non-goals from the roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/1ecae56ebd096ee4f94d12c59a36f240ce348572\"\u003e\u003ccode\u003e1ecae56\u003c/code\u003e\u003c/a\u003e docs: add a roadmap and make the chat easy to find\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ca412e3f7134bd9f0e91851778ae6d8dd222cf41\"\u003e\u003ccode\u003eca412e3\u003c/code\u003e\u003c/a\u003e docs: sync the Latest changelog page with 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/640936fb29f7bdf5665d5b7f919783bb73e2f981\"\u003e\u003ccode\u003e640936f\u003c/code\u003e\u003c/a\u003e docs: note the dependency security work in 26.1.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.3 to 7.15.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.15.4\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in the HTML report, a source file name containing a double quote (legal on POSIX) wasn’t escaped where it’s dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index and prev/next links, so it could close the attribute early and inject markup. Page URLs are now escaped. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: the LCOV report wrote file names and other fields into its line-oriented records without neutralizing control characters. A measured file whose name contained a newline (legal on POSIX) could forge extra records, inflating the coverage seen by tools that read the report. Control characters in a field are now replaced. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWheels are now provided for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.4\"\u003ecoverage 7.15.4\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.4\u003c/code\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/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in the HTML report, a source file name containing a double quote (legal\non POSIX) wasn't escaped where it's dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index\nand prev/next links, so it could close the attribute early and inject markup.\nPage URLs are now escaped. Thanks, \u003ccode\u003eRajath Mohare \u0026lt;pull 2227_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the LCOV report wrote file names and other fields into its\nline-oriented records without neutralizing control characters. A measured\nfile whose name contained a newline (legal on POSIX) could forge extra\nrecords, inflating the coverage seen by tools that read the report. Control\ncharacters in a field are now replaced. Thanks, \u003ccode\u003eRajath Mohare \u0026lt;pull 2226_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels are now provided for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2226: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003ecoveragepy/coveragepy#2226\u003c/a\u003e\n.. _pull 2227: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003ecoveragepy/coveragepy#2227\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-15-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4c0e7ff425ecbb33e2b994b41118a71eb4e39021\"\u003e\u003ccode\u003e4c0e7ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.15.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/db4cc3216ca5bb436eba697aaa74d886e4ea82c8\"\u003e\u003ccode\u003edb4cc32\u003c/code\u003e\u003c/a\u003e docs: prep for 7.15.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c33085c3fcec4dd01fc3a0419c90de7ee6b869a7\"\u003e\u003ccode\u003ec33085c\u003c/code\u003e\u003c/a\u003e style: start gradual move to ruff 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/53a0fd51ba05047624baf58bf8f288d56185df93\"\u003e\u003ccode\u003e53a0fd5\u003c/code\u003e\u003c/a\u003e fix: neutralize control characters in lcov report fields (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2226\"\u003e#2226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b64d53dd6f113b68a19ac6c1b855e34bbebfad4e\"\u003e\u003ccode\u003eb64d53d\u003c/code\u003e\u003c/a\u003e build: make 3.15 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/53792ab496adf740a38d1f67e0162705b4d67c07\"\u003e\u003ccode\u003e53792ab\u003c/code\u003e\u003c/a\u003e build: show the python version for kits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f6b03c77ffb8d58b25950bae63d36b7a1c585a70\"\u003e\u003ccode\u003ef6b03c7\u003c/code\u003e\u003c/a\u003e chore: make upgrade_one package=cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d9b660ac2a6bc64a39c4a2e7f195bb6bd6f7af89\"\u003e\u003ccode\u003ed9b660a\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b128a3172ec0cc4d70398f663e56d0362f5de4ea\"\u003e\u003ccode\u003eb128a31\u003c/code\u003e\u003c/a\u003e docs: oops, move this entry to the correct place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a7a2c15669cc6e8fdb46e5012954c795a63e9a27\"\u003e\u003ccode\u003ea7a2c15\u003c/code\u003e\u003c/a\u003e fix: escape filename urls in html report href attributes (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2227\"\u003e#2227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.15.3...7.15.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize TaskResult in the Tasks panel to accommodate the storage mechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel’s kwargs column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize the TaskResult class for Tasks panel. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2444\"\u003edjango-commons/django-debug-toolbar#2444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via Django’s built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On older versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django’s boolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that can resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container network.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without parameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not find the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked before the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the Django version check in the SQL panel by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2403\"\u003edjango-commons/django-debug-toolbar#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix some small issues in docs/installation.rst by \u003ca href=\"https://github.com/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilence the MiddlewareMixin deprecation warning explicitly by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2416\"\u003edjango-commons/django-debug-toolbar#2416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tasks panel showing tasks queued during the request by \u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests by \u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2435\"\u003edjango-commons/django-debug-toolbar#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_toolbar_with_docker on runtimes with unrelated host address by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove selenium tests reliability in CI by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2438\"\u003edjango-commons/django-debug-toolbar#2438\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/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1 (2026-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize \u003ccode\u003eTaskResult\u003c/code\u003e in the Tasks panel to accommodate the storage\nmechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel's \u003ccode\u003ekwargs\u003c/code\u003e column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-08-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via\nDjango's built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On\nolder versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django's\nboolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that\ncan resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container\nnetwork.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without\nparameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not\nfind the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked\nbefore the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f307de14d1a533273b6de7bd39579b043eb54a99\"\u003e\u003ccode\u003ef307de1\u003c/code\u003e\u003c/a\u003e Version 7.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/73951a4c517bafa5369228f2fca8306510f1cbf1\"\u003e\u003ccode\u003e73951a4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2439\"\u003e#2439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/678b687e0a30c2657dc21b1d859d1141098997a0\"\u003e\u003ccode\u003e678b687\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/7627683d89fc1c77bc2dc4550f15eede9a86cee6\"\u003e\u003ccode\u003e7627683\u003c/code\u003e\u003c/a\u003e Serialize the TaskResult class for Tasks panel. (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2444\"\u003e#2444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/a2d4260c8646ff552a0117068a624a91cd00b167\"\u003e\u003ccode\u003ea2d4260\u003c/code\u003e\u003c/a\u003e Version 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/d89606a1bfbe7e4ca17156f262ba2fc22050f253\"\u003e\u003ccode\u003ed89606a\u003c/code\u003e\u003c/a\u003e Improve selenium tests reliability in CI (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2438\"\u003e#2438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/e367e1b77eaf85e54c35985338945ae09caec58d\"\u003e\u003ccode\u003ee367e1b\u003c/code\u003e\u003c/a\u003e Fix show_toolbar_with_docker on runtimes with unrelated host address (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2422\"\u003e#2422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/49f4ef349a12a938c5cb7ef529f1f96e5ffb74b2\"\u003e\u003ccode\u003e49f4ef3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/3d3d0106c9a20e4deb0d4f9a63ca806338b8516b\"\u003e\u003ccode\u003e3d3d010\u003c/code\u003e\u003c/a\u003e Add support for Django 6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f5717342b927db1fc085844762db3e9d76174c7c\"\u003e\u003ccode\u003ef571734\u003c/code\u003e\u003c/a\u003e Stop the history panel buttons from submitting their forms\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs[compatible-mypy]` from 6.0.7 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/django-stubs/releases\"\u003edjango-stubs[compatible-mypy]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis is the first Django 6.1 release 🎉\u003c/p\u003e\n\u003cp\u003eDjango 6.0 and 5.2 are now in partial support mode.\nDjango 5.1 and 5.0 support was dropped (techically they would still work, but we don't test them no more).\nPython 3.10 support was dropped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap Django 6.1 by \u003ca href=\"https://github.com/ngnpope\"\u003e\u003ccode\u003e@​ngnpope\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3563\"\u003etypeddjango/django-stubs#3563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency django to v5.2.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3575\"\u003etypeddjango/django-stubs#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit through default manager by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3576\"\u003etypeddjango/django-stubs#3576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport custom arguments in queryset update methods by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3586\"\u003etypeddjango/django-stubs#3586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 6.1.0 by \u003ca href=\"https://github.com/sobolevn\"\u003e\u003ccode\u003e@​sobolevn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3589\"\u003etypeddjango/django-stubs#3589\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeedback is very welcome! 👍\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.9...6.1.0\"\u003ehttps://github.com/typeddjango/django-stubs/compare/6.0.9...6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e6.0.8\u003c/code\u003e was supposed to be the last \u003ccode\u003e6.0.x\u003c/code\u003e release, but we found several regressions that we wanted to fix.\nNow we are working on \u003ccode\u003e6.1.0\u003c/code\u003e release :)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDetect every generic stub class in the generic consistency test by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3572\"\u003etypeddjango/django-stubs#3572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't crash on a many-to-many through model that can't be resolved by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3571\"\u003etypeddjango/django-stubs#3571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.8...6.0.9\"\u003ehttps://github.com/typeddjango/django-stubs/compare/6.0.8...6.0.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.8\u003c/h2\u003e\n\u003cp\u003eThis is the last release with Django 6.0 full support.\nThe next release will be focused on Django 6.1 support with Django 6.0 partial support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003econtrib.gis\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3500\"\u003etypeddjango/django-stubs#3500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplicit M2M through models lose their \u003ccode\u003eobjects\u003c/code\u003e / \u003ccode\u003e_default_manager\u003c/code\u003e attributes by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3499\"\u003etypeddjango/django-stubs#3499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve dynamic manager methods via mypy's \u003ccode\u003efind_member\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3501\"\u003etypeddjango/django-stubs#3501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003edb.models\u003c/code\u003e, \u003ccode\u003ecore\u003c/code\u003e and \u003ccode\u003emigrations\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3504\"\u003etypeddjango/django-stubs#3504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow callables returning Choices type for Field.choices. by \u003ca href=\"https://github.com/felixxm\"\u003e\u003ccode\u003e@​felixxm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3506\"\u003etypeddjango/django-stubs#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003eapps\u003c/code\u003e, \u003ccode\u003eurls\u003c/code\u003e and \u003ccode\u003eadmindocs\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3503\"\u003etypeddjango/django-stubs#3503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove type in \u003ccode\u003eforms\u003c/code\u003e and improve types of lazy regexes by \u003ca href=\"https://github.com/01xnikhil\"\u003e\u003ccode\u003e@​01xnikhil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3293\"\u003etypeddjango/django-stubs#3293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003edjango.tasks\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3512\"\u003etypeddjango/django-stubs#3512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd plugin support for \u003ccode\u003eapps.get_model()\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3511\"\u003etypeddjango/django-stubs#3511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in admin filters, utils and per-app admins by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3502\"\u003etypeddjango/django-stubs#3502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInvalidate mypy cache when \u003ccode\u003esettings.INSTALLED_APPS\u003c/code\u003e change and cache full config computation by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3514\"\u003etypeddjango/django-stubs#3514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark fullnames constants as Final by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3515\"\u003etypeddjango/django-stubs#3515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003eutils\u003c/code\u003e and \u003ccode\u003etemplates\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3513\"\u003etypeddjango/django-stubs#3513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse mypy's \u003ccode\u003elookup_fully_qualified\u003c/code\u003e instead of custom symbol lookup by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3519\"\u003etypeddjango/django-stubs#3519\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/typeddjango/django-stubs/commit/2ec3fd3ce48e7a92cbe09a114d512dcea50571f7\"\u003e\u003ccode\u003e2ec3fd3\u003c/code\u003e\u003c/a\u003e Version 6.1.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/5868773c9fa5ba236c2cc263799a02acc67f7c0b\"\u003e\u003ccode\u003e5868773\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.69.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3588\"\u003e#3588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e888491e34e5b9073f1c09eb84e91ed7ce36c775\"\u003e\u003ccode\u003ee888491\u003c/code\u003e\u003c/a\u003e Support custom arguments in queryset update methods (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/ffd15cac28c39690acd98c3f9af9370f9fadedce\"\u003e\u003ccode\u003effd15ca\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3583\"\u003e#3583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/1af6dcf52f19837fdc47b26350d351dea0a139c1\"\u003e\u003ccode\u003e1af6dcf\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.68.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/709e864c79e03239be2234457f59eb66ce69e3c7\"\u003e\u003ccode\u003e709e864\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.69 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/5da937c127b581501b5707b547d861b46d8af41c\"\u003e\u003ccode\u003e5da937c\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.68 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/7afd2da77ed93d0b3164ea4d203648a6c972f161\"\u003e\u003ccode\u003e7afd2da\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.67 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/07e22f2e4918163d1f3aa1137142cf281b5fbcb1\"\u003e\u003ccode\u003e07e22f2\u003c/code\u003e\u003c/a\u003e Explicit through default manager (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3576\"\u003e#3576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/db47c3b32275b6d6abef915303fd80fde3dd59da\"\u003e\u003ccode\u003edb47c3b\u003c/code\u003e\u003c/a\u003e Update dependency django to v5.2.17 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3575\"\u003e#3575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.7...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-upgrade` from 1.31.1 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-upgrade/blob/main/docs/changelog.rst\"\u003edjango-upgrade's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.32.0 (2026-08-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.15.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#681](https://github.com/adamchainz/django-upgrade/issues/681) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/681\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eutils_text \u0026lt;utils_text\u0026gt;\u003c/code\u003e fixer to rewrite \u003ccode\u003eunescape_entities()\u003c/code\u003e calls with \u003ccode\u003ehtml.unescape()\u003c/code\u003e.\nPreviously it incorrectly used \u003ccode\u003ehtml.escape()\u003c/code\u003e, which performs the inverse operation.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#684](https://github.com/adamchainz/django-upgrade/issues/684) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/684\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer crash on empty \u003ccode\u003eindex_together\u003c/code\u003e declarations.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#685](https://github.com/adamchainz/django-upgrade/issues/685) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/685\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to not add a duplicate \u003ccode\u003eindexes\u003c/code\u003e declaration when the existing one is not a list or tuple literal.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#686](https://github.com/adamchainz/django-upgrade/issues/686) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/686\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to add a missing comma when extending a multiline \u003ccode\u003eindexes\u003c/code\u003e list that has no trailing comma.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#687](https://github.com/adamchainz/django-upgrade/issues/687) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/687\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to keep an empty \u003ccode\u003eindexes\u003c/code\u003e tuple a tuple when extending it with a single index.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#716](https://github.com/adamchainz/django-upgrade/issues/716) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/716\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eformat_html \u0026lt;format_html\u0026gt;\u003c/code\u003e fixer to skip calls with a parenthesized argument, where removing the \u003ccode\u003e.format()\u003c/code\u003e call would create a tuple.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#717](https://github.com/adamchainz/django-upgrade/issues/717) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/717\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003enull_boolean_field \u0026lt;null_boolean_field\u0026gt;\u003c/code\u003e fixer to add a missing comma before \u003ccode\u003enull=True\u003c/code\u003e when the final argument contains commas within brackets.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#688](https://github.com/adamchainz/django-upgrade/issues/688) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/688\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix fixers that modify call arguments to not treat a comment inside otherwise empty parentheses as an argument, which made the :ref:\u003ccode\u003enull_boolean_field \u0026lt;null_boolean_field\u0026gt;\u003c/code\u003e fixer produce invalid syntax.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#718](https://github.com/adamchainz/django-upgrade/issues/718) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/718\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etest_http_headers \u0026lt;test_http_headers\u0026gt;\u003c/code\u003e fixer to avoid a double comma when the existing \u003ccode\u003eheaders=\u003c/code\u003e dict has a trailing comma.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#689](https://github.com/adamchainz/django-upgrade/issues/689) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/689\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etest_http_headers \u0026lt;test_http_headers\u0026gt;\u003c/code\u003e fixer to insert converted headers at the start of an existing \u003ccode\u003eheaders=\u003c/code\u003e dict.\nDjango gives \u003ccode\u003eheaders=\u003c/code\u003e entries precedence over \u003ccode\u003eHTTP_\u003c/code\u003e arguments, and the last duplicate key wins in a dict literal, so appending converted entries at the end previously flipped which value took effect.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#723](https://github.com/adamchainz/django-upgrade/issues/723) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/723\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etestcase_databases \u0026lt;testcase_databases\u0026gt;\u003c/code\u003e fixer to rewrite \u003ccode\u003emulti_db = False\u003c/code\u003e to \u003ccode\u003edatabases = [\u0026quot;default\u0026quot;]\u003c/code\u003e rather than \u003ccode\u003edatabases = []\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/adamchainz/django-upgrade/commit/423ab5081e037d3c692113d654d49ea9e3ee0066\"\u003e\u003ccode\u003e423ab50\u003c/code\u003e\u003c/a\u003e Version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/7b1224a970289729eb50a1fffca04844a8c1ab1f\"\u003e\u003ccode\u003e7b1224a\u003c/code\u003e\u003c/a\u003e Tidy changelog (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/63607890eb3090bded91c6432b43948a1757bd1e\"\u003e\u003ccode\u003e6360789\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eforms_model_multiple_choice_field\u003c/code\u003e corrupting concatenated keys (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/02a46831ceb213421761f312e1368fa7b7e796d9\"\u003e\u003ccode\u003e02a4683\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003etestcase_databases\u003c/code\u003e mapping of \u003ccode\u003emulti_db = False\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/bc85eb958b63b752cbd7454d6378e51ca50d891d\"\u003e\u003ccode\u003ebc85eb9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eadmin_decorators\u003c/code\u003e hoisting values above their definitions (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/4eb5abf3734ba10c96dd53abdf98e50c78c4adae\"\u003e\u003ccode\u003e4eb5abf\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eadmin_register\u003c/code\u003e referencing models defined after the admin class (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/d782084a4fe43286d6b4b2d11676efad0a1356cb\"\u003e\u003ccode\u003ed782084\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003esettings_storages\u003c/code\u003e erasing settings referenced elsewhere (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/2f3eb7571f87ae8c62389ac8f977935f81fbe58e\"\u003e\u003ccode\u003e2f3eb75\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003etest_http_headers\u003c/code\u003e precedence when merging into \u003ccode\u003eheaders=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/d750615a98098ff0c44477041932a04089d5aa47\"\u003e\u003ccode\u003ed750615\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003estringagg\u003c/code\u003e moving import despite bare \u003ccode\u003eStringAgg\u003c/code\u003e references (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/49cb8b9c2297d329a8f858beb54fb34e7274830a\"\u003e\u003ccode\u003e49cb8b9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eutils_timezone\u003c/code\u003e matching aliased \u003ccode\u003eutc\u003c/code\u003e imports (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-upgrade/compare/1.31.1...1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThis is the first version to be based on DRF 3.18\u003c/li\u003e\n\u003cli\u003eThis is the last version to support \u003ccode\u003edjango-stubs\u003c/code\u003e 6.0.x - next release will require 6.1.x\u003c/li\u003e\n\u003cli\u003eThis is the last ver...\n\n_Description has been truncated_","html_url":"https://github.com/rl-institut/SustAgriTool/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2FSustAgriTool/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"5233154581","node_id":"PR_kwDOS9VYHs8AAAABAxtqTQ","number":66,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T09:11:09.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-24T09:25:58.000Z","updated_at":"2026-09-04T09:11:11.000Z","time_to_close":949511,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":20,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"django-anymail","old_version":"15.0","new_version":"15.1"},{"name":"django-crispy-forms","old_version":"2.6","new_version":"2.7","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"drf-spectacular","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/tfranzel/drf-spectacular"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"redis","old_version":"8.0.0","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"coverage","old_version":"7.14.1","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.5","new_version":"6.1.0"},{"name":"djangorestframework-stubs","old_version":"3.17.0","new_version":"3.18.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"djlint","old_version":"1.39.2","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.1.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.0","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.15.18","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `15.0` | `15.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.6` | `2.7` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.17.1` | `3.18.0` |\n| [drf-spectacular](https://github.com/tfranzel/drf-spectacular) | `0.29.0` | `0.30.0` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.1.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [redis](https://github.com/redis/redis-py) | `8.0.0` | `8.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.14.1` | `7.15.4` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.5` | `6.1.0` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.17.0` | `3.18.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.39.2` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.1.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.0` | `4.6.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.1.0` | `9.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.16.4` |\n\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-anymail[mailgun]` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anymail/django-anymail/releases\"\u003edjango-anymail[mailgun]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://anymail.dev/en/stable/changelog/#v15-1\"\u003eChangelog\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/anymail/django-anymail/blob/main/CHANGELOG.rst\"\u003edjango-anymail[mailgun]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-07-30\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFixes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **Amazon SES, Brevo:** Fix ``InvalidMailer`` error about \u0026quot;Unknown options\u0026quot;\n  when used with Django 6.1 ``MAILERS`` setting.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePostmark:\u003c/strong\u003e Raise an unsupported feature error when \u003ccode\u003emerge_data\u003c/code\u003e or\n\u003ccode\u003emerge_global_data\u003c/code\u003e is used without a \u003ccode\u003etemplate_id\u003c/code\u003e. Anymail passes that\ndata to Postmark in its \u003ccode\u003eTemplateModel\u003c/code\u003e field, which is silently ignored\nwhen sending through a non-template API. (Thanks to \u003ccode\u003e@slinkymanbyday\u003c/code\u003e_ for\nreporting the issue and \u003ccode\u003e@Sanjays2402\u003c/code\u003e_ for the fix.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTest against prerelease versions of Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for ``fail_silently`` in Anymail's email backends is being phased out,\n  matching Django's deprecation of the feature. Anymail will issue a deprecation\n  warning when ``fail_silently`` is used. Support for it will be dropped in a\n  future release when Django 6.2 support is discontinued.\n\u003cp\u003eSee \u003ccode\u003eReplacing fail_silently \u0026amp;lt;https://docs.djangoproject.com/en/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\u0026amp;gt;\u003c/code\u003e_\nin Django's documentation for recommendations.\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/anymail/django-anymail/commit/8c40cc46f6a7aa308c5cabe99c0ea13733b5e079\"\u003e\u003ccode\u003e8c40cc4\u003c/code\u003e\u003c/a\u003e Release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/7e8b81bab3465b84ea2374814211a435cb1255ad\"\u003e\u003ccode\u003e7e8b81b\u003c/code\u003e\u003c/a\u003e Postmark: Handle merge_data without template_id as unsupported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/d973c84e317554d4047c8998721060be6af41381\"\u003e\u003ccode\u003ed973c84\u003c/code\u003e\u003c/a\u003e Update URLs to Mailjet's documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/16719488929c979058be55dec598caa20194eba5\"\u003e\u003ccode\u003e1671948\u003c/code\u003e\u003c/a\u003e Update readme for Django 6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/0dfc0aa6afe487105bc381f90f1baf4be5776768\"\u003e\u003ccode\u003e0dfc0aa\u003c/code\u003e\u003c/a\u003e Add 'docs-watch' tox environment for sphinx-autobuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/232477aecf5b994b98697ac2ec3fbbb183d6973f\"\u003e\u003ccode\u003e232477a\u003c/code\u003e\u003c/a\u003e Deprecate fail_silently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/e56745200b3381a3266891e5cb58630c347d8ba5\"\u003e\u003ccode\u003ee567452\u003c/code\u003e\u003c/a\u003e Improve support for MAILERS configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/e670d788ea2f1539005dd3e93a324b025c88be89\"\u003e\u003ccode\u003ee670d78\u003c/code\u003e\u003c/a\u003e Amazon SES, Brevo: Fix compatibility with Django 6.1 MAILERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/15b57e283ac0c964b4832997b669ba99bd25f1a3\"\u003e\u003ccode\u003e15b57e2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.1 pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/171fa385f9a49bf6720217d8f6b29502e9c262ef\"\u003e\u003ccode\u003e171fa38\u003c/code\u003e\u003c/a\u003e Change black and isort to target Python 3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anymail/django-anymail/compare/v15.0...v15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.6 to 2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Django 6.1.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7fbb538595dde3a4598b4403e60ecca0905fa74\"\u003e\u003ccode\u003ee7fbb53\u003c/code\u003e\u003c/a\u003e Release 2.7. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1438\"\u003e#1438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/9d6b32129dea4c89caa87218a11192503646b9da\"\u003e\u003ccode\u003e9d6b321\u003c/code\u003e\u003c/a\u003e Bumped github actions versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/974b5b7390c0b11698c348128b164990cb6f044b\"\u003e\u003ccode\u003e974b5b7\u003c/code\u003e\u003c/a\u003e Bumped RTD OS and Python versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/5218268f520ca19c665e6f02a49df647eb977af6\"\u003e\u003ccode\u003e5218268\u003c/code\u003e\u003c/a\u003e Confirmed support for Django 6.1. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/847873cf09f0ee96beb38273190860008a6712dd\"\u003e\u003ccode\u003e847873c\u003c/code\u003e\u003c/a\u003e docs: replace 'basestring' with 'str' (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1433\"\u003e#1433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.6...2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Django 4.2, Django 5.0 and Django 5.1 by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9899\"\u003eencode/django-rest-framework#9899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange errors for list serializers (\u003ccode\u003emany=True\u003c/code\u003e) to dict format by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9837\"\u003eencode/django-rest-framework#9837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eunaccent\u003c/code\u003e to \u003ccode\u003eSearchFilter\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9385\"\u003eencode/django-rest-framework#9385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10003\"\u003eencode/django-rest-framework#10003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@throttle_scope\u003c/code\u003e function based view decorator by \u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enulls_distinct\u003c/code\u003e support to \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003echoices\u003c/code\u003e param for non-editable fields by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9929\"\u003eencode/django-rest-framework#9929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove cursor pagination template accessibility in browsable API by \u003ca href=\"https://github.com/kosbemrunal\"\u003e\u003ccode\u003e@​kosbemrunal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9905\"\u003eencode/django-rest-framework#9905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix partial form data updates involving \u003ccode\u003eListField\u003c/code\u003e by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9902\"\u003eencode/django-rest-framework#9902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash due to browsable API extra action permissions by \u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle unhashable \u003ccode\u003eBooleanField\u003c/code\u003e representation value by \u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAPI schema for zero numeric bounds on ListField children by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ecc_delim_re usage\u003c/code\u003e with \u003ccode\u003esplit_header_value\u003c/code\u003e for Django 6.1+ compatibility by \u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eset_rollback\u003c/code\u003e to only rollback initialized connections by \u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DictField HTML input returning empty dict for missing fields by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise clear error for unsupported unique-together list updates by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9981\"\u003eencode/django-rest-framework#9981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrepare release 3.18.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/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\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/Im-Bilal\"\u003e\u003ccode\u003e@​Im-Bilal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9967\"\u003eencode/django-rest-framework#9967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harshitkandpal\"\u003e\u003ccode\u003e@​harshitkandpal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9993\"\u003eencode/django-rest-framework#9993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/udit-prabhakar\"\u003e\u003ccode\u003e@​udit-prabhakar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9962\"\u003eencode/django-rest-framework#9962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sai09111995\"\u003e\u003ccode\u003e@​sai09111995\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9884\"\u003eencode/django-rest-framework#9884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Elkasitu\"\u003e\u003ccode\u003e@​Elkasitu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8494\"\u003eencode/django-rest-framework#8494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vishalanandl177\"\u003e\u003ccode\u003e@​vishalanandl177\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10002\"\u003eencode/django-rest-framework#10002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anurag12anu\"\u003e\u003ccode\u003e@​anurag12anu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9814\"\u003eencode/django-rest-framework#9814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/11875a38f483cea69d8ef2fd9ede6b96fb602ec4\"\u003e\u003ccode\u003e11875a3\u003c/code\u003e\u003c/a\u003e Prepare release 3.18.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/d346a8c3c92a36fdb462c992331e238d0a737305\"\u003e\u003ccode\u003ed346a8c\u003c/code\u003e\u003c/a\u003e Add note about Browsable API simulating \u003ccode\u003ePOST\u003c/code\u003e in documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9814\"\u003e#9814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/80d535ddf08226020a9f44ca57f6eb1bbd91fa6a\"\u003e\u003ccode\u003e80d535d\u003c/code\u003e\u003c/a\u003e Fix GHA workflow for preparing release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/aa1876b8b6009a618e6241f91e2c2d6dfbacb5d9\"\u003e\u003ccode\u003eaa1876b\u003c/code\u003e\u003c/a\u003e Update fields.md explaining how the \u003ccode\u003esource\u003c/code\u003e argument affects `.validated_dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/000bb334f7995a972e700f81fbdbd50a80f38985\"\u003e\u003ccode\u003e000bb33\u003c/code\u003e\u003c/a\u003e Add nulls_distinct support to UniqueTogetherValidator (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9866\"\u003e#9866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7508e0cf122d5250a2cba824a3c537a288acb489\"\u003e\u003ccode\u003e7508e0c\u003c/code\u003e\u003c/a\u003e Raise clear error for unsupported list update validation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9981\"\u003e#9981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/69d1cd7f1322060397b7f747d199e3926f5d297b\"\u003e\u003ccode\u003e69d1cd7\u003c/code\u003e\u003c/a\u003e Fix DictField HTML input returning empty dict for missing fields (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9891\"\u003e#9891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/bbc62aca6f67a2a7fe0427a768973f5d9f143c58\"\u003e\u003ccode\u003ebbc62ac\u003c/code\u003e\u003c/a\u003e Update Django 6.1 dependency to stable release. (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f78043440a7884936232fdffffb68adcdbb3b272\"\u003e\u003ccode\u003ef780434\u003c/code\u003e\u003c/a\u003e Add GHA workflow to prepare a release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/dc027d2bb41c3858fc2fc95bf2b04b33f0cdc5be\"\u003e\u003ccode\u003edc027d2\u003c/code\u003e\u003c/a\u003e set_rollback should only rollback initialized connections (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9599\"\u003e#9599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-spectacular` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tfranzel/drf-spectacular/releases\"\u003edrf-spectacular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003cp\u003eAfter working through the backlog for several week, we are finally in a comfortable place again. Thank you to all contributors and users that waited patiently for me the catch up. It does not include all the PRs that were opened, but imho the most critical ones.\u003c/p\u003e\n\u003cp\u003eThis release includes many small improvement, a few bug fixes, updates to the test suite and a renovated test matrix. Some minor schema corrections are to be expected, but nothing drastic. It is mostly fixing small inconsistencies and improving corner cases.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression introduced in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1450\"\u003e#1450\u003c/a\u003e by \u003ca href=\"https://github.com/hoefling\"\u003e\u003ccode\u003e@​hoefling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1469\"\u003etfranzel/drf-spectacular#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dependency definition for Django 5.2 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1487\"\u003etfranzel/drf-spectacular#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for Django 6.0 and and DRF 3.17 by \u003ca href=\"https://github.com/vgrozdanic\"\u003e\u003ccode\u003e@​vgrozdanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1496\"\u003etfranzel/drf-spectacular#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Support for unsigned integers uint16, uint32 and uint64 by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1483\"\u003etfranzel/drf-spectacular#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement x-spec-enum-id for type hint Choices. by \u003ca href=\"https://github.com/noamkush\"\u003e\u003ccode\u003e@​noamkush\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1486\"\u003etfranzel/drf-spectacular#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarifies Docs in Customizations.rst by \u003ca href=\"https://github.com/APCBoston\"\u003e\u003ccode\u003e@​APCBoston\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1489\"\u003etfranzel/drf-spectacular#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd setting to disable docstring extraction by \u003ca href=\"https://github.com/philipstarkey\"\u003e\u003ccode\u003e@​philipstarkey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1491\"\u003etfranzel/drf-spectacular#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for polymorphic built-in drf support by \u003ca href=\"https://github.com/mastacheata\"\u003e\u003ccode\u003e@​mastacheata\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1490\"\u003etfranzel/drf-spectacular#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003edjango-rest-knox\u003c/code\u003e support by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1503\"\u003etfranzel/drf-spectacular#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd help text to spectacular management command arguments \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1175\"\u003e#1175\u003c/a\u003e by \u003ca href=\"https://github.com/jbbqqf\"\u003e\u003ccode\u003e@​jbbqqf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1502\"\u003etfranzel/drf-spectacular#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echange conflicting license field for 3.8 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1504\"\u003etfranzel/drf-spectacular#1504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1438 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1505\"\u003etfranzel/drf-spectacular#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd blueprint for django-rest-knox by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1506\"\u003etfranzel/drf-spectacular#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1499 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1511\"\u003etfranzel/drf-spectacular#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType hint build_bearer_security_scheme_object by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1509\"\u003etfranzel/drf-spectacular#1509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHousekeeping by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1512\"\u003etfranzel/drf-spectacular#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1501 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1514\"\u003etfranzel/drf-spectacular#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nullable FileField response schema when blank=True (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1493\"\u003e#1493\u003c/a\u003e) by \u003ca href=\"https://github.com/mojtabasohrabi\"\u003e\u003ccode\u003e@​mojtabasohrabi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1501\"\u003etfranzel/drf-spectacular#1501\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/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1487\"\u003etfranzel/drf-spectacular#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vgrozdanic\"\u003e\u003ccode\u003e@​vgrozdanic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1496\"\u003etfranzel/drf-spectacular#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/noamkush\"\u003e\u003ccode\u003e@​noamkush\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1486\"\u003etfranzel/drf-spectacular#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APCBoston\"\u003e\u003ccode\u003e@​APCBoston\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1489\"\u003etfranzel/drf-spectacular#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/philipstarkey\"\u003e\u003ccode\u003e@​philipstarkey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1491\"\u003etfranzel/drf-spectacular#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mastacheata\"\u003e\u003ccode\u003e@​mastacheata\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1490\"\u003etfranzel/drf-spectacular#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jbbqqf\"\u003e\u003ccode\u003e@​jbbqqf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1502\"\u003etfranzel/drf-spectacular#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mojtabasohrabi\"\u003e\u003ccode\u003e@​mojtabasohrabi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1501\"\u003etfranzel/drf-spectacular#1501\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.0\"\u003ehttps://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.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/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst\"\u003edrf-spectacular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0 (2026-07-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAS 3.2 schema for validation \u0026amp; test\u003c/li\u003e\n\u003cli\u003eType hint build_bearer_security_scheme_object (\u003ccode\u003e[#1509](https://github.com/tfranzel/drf-spectacular/issues/1509) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1509\u0026gt;\u003c/code\u003e_) [johnthagen]\u003c/li\u003e\n\u003cli\u003eFix formatted CharField allow_blank handling (\u003ccode\u003e[#1511](https://github.com/tfranzel/drf-spectacular/issues/1511) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1511\u0026gt;\u003c/code\u003e\u003cem\u003e, (\u003ccode\u003e[#1499](https://github.com/tfranzel/drf-spectacular/issues/1499) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1499\u0026gt;\u003c/code\u003e\u003c/em\u003e)) [Luciano de la Iglesia]\u003c/li\u003e\n\u003cli\u003eConsider allOf anyOf with nullable on OAS3.1 \u003ccode\u003e[#1480](https://github.com/tfranzel/drf-spectacular/issues/1480) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1480\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eProper handling for OAS 3.2\u003c/li\u003e\n\u003cli\u003efix modification of user-provided schematas \u003ccode\u003e[#1500](https://github.com/tfranzel/drf-spectacular/issues/1500) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1500\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003erelax contraint on oneOf null case with OAS3.1 \u003ccode\u003e[#1480](https://github.com/tfranzel/drf-spectacular/issues/1480) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1480\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eAdd blueprint for django-rest-knox (\u003ccode\u003e[#1506](https://github.com/tfranzel/drf-spectacular/issues/1506) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1506\u0026gt;\u003c/code\u003e_) [johnthagen]\u003c/li\u003e\n\u003cli\u003eMitigate GeneratedField lost arguments and special case for DecimalField \u003ccode\u003e[#1166](https://github.com/tfranzel/drf-spectacular/issues/1166) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1166\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eWebhook explicit operationId (\u003ccode\u003e[#1505](https://github.com/tfranzel/drf-spectacular/issues/1505) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1505\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003echange conflicting license field for 3.8 (\u003ccode\u003e[#1504](https://github.com/tfranzel/drf-spectacular/issues/1504) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1504\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocument django-rest-knox support [johnthagen]\u003c/li\u003e\n\u003cli\u003eadd help text to spectacular management command arguments \u003ccode\u003e[#1175](https://github.com/tfranzel/drf-spectacular/issues/1175) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1175\u0026gt;\u003c/code\u003e_ [Jean-Baptiste Braun]\u003c/li\u003e\n\u003cli\u003eMark FileField as nullable in response when not required \u003ccode\u003e[#1493](https://github.com/tfranzel/drf-spectacular/issues/1493) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1493\u0026gt;\u003c/code\u003e_ [mojtaba sohrabi]\u003c/li\u003e\n\u003cli\u003eExtend Choices hint fix with generated label description \u003ccode\u003e[#1486](https://github.com/tfranzel/drf-spectacular/issues/1486) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1486\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eSuppress py\u0026lt;=3.14 deprecation warning \u003ccode\u003e[#1497](https://github.com/tfranzel/drf-spectacular/issues/1497) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1497\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eRemove ancient DRF3.11 and Django2.2 due to contrib packages failing\u003c/li\u003e\n\u003cli\u003efeat: add support for django 6.0 and and drf 3.17 [Vjeran Grozdanic]\u003c/li\u003e\n\u003cli\u003eAdd setting to disable docstring extraction [Phil Starkey]\u003c/li\u003e\n\u003cli\u003efeat: add support for polymorphic built-in drf support [Benedikt Bauer]\u003c/li\u003e\n\u003cli\u003eClarifies post-processing hooks [Andy Piltser-Cowan]\u003c/li\u003e\n\u003cli\u003eClarifies customizations step 5 [Andy Piltser-Cowan]\u003c/li\u003e\n\u003cli\u003eFix dependency definition for Django 5.2 [Ülgen Sarıkavak]\u003c/li\u003e\n\u003cli\u003eImplement x-spec-enum-id for type hint Choices. [Noam Kushinsky]\u003c/li\u003e\n\u003cli\u003eAdd Support for unsigned integers uint16, uint32 and uint64 [Nicolas Delaby]\u003c/li\u003e\n\u003cli\u003eFix regression introduced in \u003ccode\u003e[#1450](https://github.com/tfranzel/drf-spectacular/issues/1450) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1450\u0026gt;\u003c/code\u003e_ (\u003ccode\u003e[#1469](https://github.com/tfranzel/drf-spectacular/issues/1469) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1469\u0026gt;\u003c/code\u003e_) [Oleg Höfling]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBreaking changes / important additions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMany small improvement, bug fixes, updates to the test suite and renovated test matrix. Some minor schema corrections are to be expected, but nothing drastic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/1a5c44a15b2d06744f49285f1f58992f938a05fa\"\u003e\u003ccode\u003e1a5c44a\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/6ba553fc827613d7b36efc9d9f53043e4a2e5443\"\u003e\u003ccode\u003e6ba553f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1514\"\u003e#1514\u003c/a\u003e from tfranzel/pr1501\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d4787a4e2ef0ff4b7c6a72fe3dddf1ea8e8a963c\"\u003e\u003ccode\u003ed4787a4\u003c/code\u003e\u003c/a\u003e Adapt FileField null handling \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d8679422975c68bc3a2c97c278957ec043d915c1\"\u003e\u003ccode\u003ed867942\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1512\"\u003e#1512\u003c/a\u003e from tfranzel/housekeeping26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/5685cf8b731f9a93d9c66003ac2569d4ef7540a8\"\u003e\u003ccode\u003e5685cf8\u003c/code\u003e\u003c/a\u003e Add OAS 3.2 schema for validation \u0026amp; test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/9fa6f7c1f8d99ef14d9dfa11b89f432ba370242f\"\u003e\u003ccode\u003e9fa6f7c\u003c/code\u003e\u003c/a\u003e minor cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/69033ea1e371fb254731c9e9164fd403ace3c5d4\"\u003e\u003ccode\u003e69033ea\u003c/code\u003e\u003c/a\u003e update linting version due to misleading security warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d9e0de6717c9953b3e9c66da6a5bc6aefb714827\"\u003e\u003ccode\u003ed9e0de6\u003c/code\u003e\u003c/a\u003e Type hint build_bearer_security_scheme_object (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1509\"\u003e#1509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/9b18b302b697ba1a5e86271a7e4d090a5995cc21\"\u003e\u003ccode\u003e9b18b30\u003c/code\u003e\u003c/a\u003e Pr1499 (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1511\"\u003e#1511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/6e3c72ea5df8e8452a2b8c3e792a7cab23814446\"\u003e\u003ccode\u003e6e3c72e\u003c/code\u003e\u003c/a\u003e Consider allOf anyOf with nullable on OAS3.1 \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1480\"\u003e#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\u003c/code\u003e\nare treated as patterns, so \u003ccode\u003eui/*/config.json\u003c/code\u003e watches every view's config\nwithout listing them one by one. Patterns are re-expanded on every reload\ncheck rather than once at startup, so a file created later starts being\nwatched without restarting gunicorn, and \u003ccode\u003e**\u003c/code\u003e recurses. A pattern matching\nnothing warns instead of failing, since with live expansion it may match later\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/1643\"\u003e#1643\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3662\"\u003e#3662\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency floors raised past known advisories\u003c/strong\u003e: every declared floor was\nchecked against the advisory database. \u003ccode\u003etornado\u003c/code\u003e, \u003ccode\u003eh2\u003c/code\u003e, \u003ccode\u003esetuptools\u003c/code\u003e and\n\u003ccode\u003epymdown-extensions\u003c/code\u003e permitted vulnerable versions and now require the first\nclean release; \u003ccode\u003epytest\u003c/code\u003e and \u003ccode\u003ehttpx\u003c/code\u003e were unpinned and now carry floors. The\n\u003ccode\u003etornado\u003c/code\u003e example pinned \u003ccode\u003etornado\u0026lt;6\u003c/code\u003e, which was both the source of several\nadvisories and older than the \u003ccode\u003e\u0026gt;=6.5.0\u003c/code\u003e the tornado worker needs, so the\nexample could not run as pinned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSIGHUP did not reload the logger configuration\u003c/strong\u003e: \u003ccode\u003eArbiter.reload()\u003c/code\u003e\nre-read the configuration file but kept using the logger built at startup,\ncalling only \u003ccode\u003ereopen_files()\u003c/code\u003e on its existing handlers. Changes to\n\u003ccode\u003elogconfig\u003c/code\u003e, \u003ccode\u003elogconfig_dict\u003c/code\u003e, \u003ccode\u003elogconfig_json\u003c/code\u003e and \u003ccode\u003eloglevel\u003c/code\u003e were ignored\nuntil a full restart, which in containers meant replacing the pod. The\nexisting logger now re-runs its setup on reload, so new handlers, formats\nand levels take effect while the process identity and its listeners are\npreserved, and re-running the setup no longer stacks duplicate syslog\nhandlers. An invalid log configuration on reload is not fatal either: the\nerror is reported on stderr, the previous working configuration is restored\nand the master keeps running with it\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3353\"\u003e#3353\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTruncated chunked bodies accepted\u003c/strong\u003e: RFC 9112 section 7.1.2 ends a chunked\nbody with \u003ccode\u003e0 CRLF CRLF\u003c/code\u003e, the second CRLF being the mandatory empty trailer\nsection. \u003ccode\u003eChunkedReader.parse_chunk_size()\u003c/code\u003e swallowed the \u003ccode\u003eNoMoreData\u003c/code\u003e raised\nwhile scanning for it, so a body cut short right after the last chunk line was\ntreated as complete instead of rejected. It now raises\n\u003ccode\u003eChunkMissingTerminator\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3382\"\u003e#3382\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3685\"\u003e#3685\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e--spew\u003c/code\u003e crashed on dynamically generated code\u003c/strong\u003e: the trace hook indexed the\n2-tuple returned by \u003ccode\u003einspect.getsourcelines()\u003c/code\u003e by line number rather than\nindexing the list of lines, so a frame with no \u003ccode\u003e__file__\u003c/code\u003e raised\n\u003ccode\u003eAttributeError: 'int' object has no attribute 'rstrip'\u003c/code\u003e on line 1 and\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/benoitc/gunicorn/commit/71b59a75820dd4a762dc42a3280124168b4e44a8\"\u003e\u003ccode\u003e71b59a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3698\"\u003e#3698\u003c/a\u003e from benoitc/fix/docker-health-check-readerror\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/48287de8d8360825c85ac981ddfe9c80dba3b418\"\u003e\u003ccode\u003e48287de\u003c/code\u003e\u003c/a\u003e test: catch every transport error in the docker health check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3110e8c37f716ca0ed63ca7f80c7c9ea0fbbdd50\"\u003e\u003ccode\u003e3110e8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3696\"\u003e#3696\u003c/a\u003e from benoitc/docs/roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cc56c410b7103c1f2b877279f81cb3a14705315a\"\u003e\u003ccode\u003ecc56c41\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3693\"\u003e#3693\u003c/a\u003e from benoitc/release/26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5cf1f1651a40fa36afe13fde623e3437ca872463\"\u003e\u003ccode\u003e5cf1f16\u003c/code\u003e\u003c/a\u003e docs: surface the roadmap on the site home page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7e35f72d135056c37da321becf22b19aeec06937\"\u003e\u003ccode\u003e7e35f72\u003c/code\u003e\u003c/a\u003e docs: add FastCGI to the roadmap and point items at Ideas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/18ddc586c9b9513b25e92c6ed6f818f66ff3abcd\"\u003e\u003ccode\u003e18ddc58\u003c/code\u003e\u003c/a\u003e docs: drop the framework and reverse-proxy non-goals from the roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/1ecae56ebd096ee4f94d12c59a36f240ce348572\"\u003e\u003ccode\u003e1ecae56\u003c/code\u003e\u003c/a\u003e docs: add a roadmap and make the chat easy to find\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ca412e3f7134bd9f0e91851778ae6d8dd222cf41\"\u003e\u003ccode\u003eca412e3\u003c/code\u003e\u003c/a\u003e docs: sync the Latest changelog page with 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/640936fb29f7bdf5665d5b7f919783bb73e2f981\"\u003e\u003ccode\u003e640936f\u003c/code\u003e\u003c/a\u003e docs: note the dependency security work in 26.1.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.2.0 to 12.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.3.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.3.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.3.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove non-image ImageCms modes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9697\"\u003e#9697\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd release notes for SBOM and performance improvements \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9747\"\u003e#9747\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd security release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9741\"\u003e#9741\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for Python 3.15 beta wheels \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9696\"\u003e#9696\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImageFont can also be used with ImageText \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9597\"\u003e#9597\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdditional guidelines for security reports \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9659\"\u003e#9659\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFixed typo \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9636\"\u003e#9636\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded CVEs to 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9591\"\u003e#9591\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRevise development support information in README \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9583\"\u003e#9583\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd INCIDENT_RESPONSE.md \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9555\"\u003e#9555\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd STRIDE threat model to security docs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9562\"\u003e#9562\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd CVEs to 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9556\"\u003e#9556\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate README with revised security policy \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9553\"\u003e#9553\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate security policy \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9552\"\u003e#9552\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9534\"\u003e#9534\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency harfbuzz to v14.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9720\"\u003e#9720\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9653\"\u003e#9653\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v4 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9665\"\u003e#9665\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9655\"\u003e#9655\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency libavif to v1.4.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9652\"\u003e#9652\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency lcms2 to v2.19.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9651\"\u003e#9651\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency check-jsonschema to v0.37.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9650\"\u003e#9650\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate google/oss-fuzz digest to d872252 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9614\"\u003e#9614\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency lcms2 to v2.19 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9609\"\u003e#9609\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency libpng to v1.6.58 - autoclosed \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9608\"\u003e#9608\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency harfbuzz to v14 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9610\"\u003e#9610\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.20.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9599\"\u003e#9599\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9611\"\u003e#9611\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9607\"\u003e#9607\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove dependency versions to single JSON and enable Renovate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9559\"\u003e#9559\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated raqm to 0.10.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9557\"\u003e#9557\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9532\"\u003e#9532\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove matrix.os from benchmark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9735\"\u003e#9735\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove references to libavif patch \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9734\"\u003e#9734\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd benchmark tests \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9654\"\u003e#9654\u003c/a\u003e [\u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUse reshape() instead of setting NumPy array shape directly \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9728\"\u003e#9728\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/bb1d8e8ab8d29048624d96e3ee53cecf7c13d13d\"\u003e\u003ccode\u003ebb1d8e8\u003c/code\u003e\u003c/a\u003e 12.3.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e63fc481dc2e07e21d5403deafb8f1ed98a513af\"\u003e\u003ccode\u003ee63fc48\u003c/code\u003e\u003c/a\u003e Add release notes for SBOM and performance improvements (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9747\"\u003e#9747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/13b701bbab291eec4bc87ea17ba06c94e5fe3054\"\u003e\u003ccode\u003e13b701b\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5564ca72fcd59d040e270af5dcf17a0d7161c364\"\u003e\u003ccode\u003e5564ca7\u003c/code\u003e\u003c/a\u003e List methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/a0920fd384f800b5d0ba3dd29ecdeae4f1d4043b\"\u003e\u003ccode\u003ea0920fd\u003c/code\u003e\u003c/a\u003e Speed up ImageChops operations (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9738\"\u003e#9738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/07e9a6cd5336dc6cf8cae9165cd70cdd2b3e42fc\"\u003e\u003ccode\u003e07e9a6c\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.filter()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9736\"\u003e#9736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/a94578cf9649ea13e426cf7fb2b71b39ffc0dd50\"\u003e\u003ccode\u003ea94578c\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.getchannel()\u003c/code\u003e, \u003ccode\u003eImage.merge()\u003c/code\u003e, \u003ccode\u003eImage.putalpha()\u003c/code\u003e and `Image...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/53e02c43c919d149b2a154a5180079f9df18fbbb\"\u003e\u003ccode\u003e53e02c4\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.fill()\u003c/code\u003e, \u003ccode\u003eImage.linear_gradient()\u003c/code\u003e and `Image.radial_gradient...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/af037475be8634ba739744243164ba9e2c8346a6\"\u003e\u003ccode\u003eaf03747\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.resample()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9739\"\u003e#9739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5c9ca56c3e5fba52b647809fbb0986c87e73a571\"\u003e\u003ccode\u003e5c9ca56\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003ealpha_composite\u003c/code\u003e, \u003ccode\u003ematrix\u003c/code\u003e, \u003ccode\u003enegative\u003c/code\u003e, \u003ccode\u003equantize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9740\"\u003e#9740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.2.0...12.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 8.0.0 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e✨ Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync maintenance notifications\u003c/h3\u003e\n\u003cp\u003eredis-py now supports server-pushed \u003cstrong\u003emaintenance notifications\u003c/strong\u003e in the asyncio stack for both\nstandalone and cluster clients, bringing the async client to parity with the sync implementation.\nWhen a Redis deployment signals maintenance events (such as node migration or failover windows), the\nasync client reacts through the maintenance-notifications handler (\u003ccode\u003eredis/maint_notifications.py\u003c/code\u003e and\nits async integration under \u003ccode\u003eredis/asyncio/\u003c/code\u003e), allowing applications to adapt connection handling\nduring maintenance without downtime. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eExpanded command coverage\u003c/h3\u003e\n\u003cp\u003eThis release adds a batch of new command surfaces across core data types and modules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLists\u003c/strong\u003e — \u003ccode\u003eLMOVEM\u003c/code\u003e / \u003ccode\u003eBLMOVEM\u003c/code\u003e for moving multiple elements between lists (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSets\u003c/strong\u003e — \u003ccode\u003eSDI...\n\n_Description has been truncated_","html_url":"https://github.com/hhhylaiii/maiagent_reply_platform/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhhylaiii%2Fmaiagent_reply_platform/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"}],"issue_packages":[{"old_version":"3.3.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-05T17:33:20.000Z","version_change":"3.3.0 → 3.4.1","issue":{"uuid":"5359719805","node_id":"PR_kwDOR9i09M8AAAABCVx5cA","number":517,"state":"open","title":"chore(deps): bump the patch-and-minor group with 189 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-05T17:33:20.000Z","updated_at":"2026-09-05T17:33:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"patch-and-minor","update_count":189,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"httpx","old_version":"0.26.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.5","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.2.1","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.3","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"wheel","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/pypa/wheel"},{"name":"authlib","old_version":"1.6.9","new_version":"1.8.0","repository_url":"https://github.com/authlib/authlib"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"pyjwt","old_version":"2.12.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"tornado","old_version":"6.5.5","new_version":"6.5.8","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"fastapi","old_version":"0.111.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.18.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"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":"apscheduler","old_version":"3.11.2","new_version":"3.11.3","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"arq","old_version":"0.27.0","new_version":"0.28.0","repository_url":"https://github.com/python-arq/arq"},{"name":"asgiref","old_version":"3.11.1","new_version":"3.12.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"4.0.4","new_version":"4.3.1","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"bandit","old_version":"1.8.6","new_version":"1.9.4","repository_url":"https://github.com/PyCQA/bandit"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.15.0"},{"name":"bidict","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/jab/bidict"},{"name":"boto3","old_version":"1.42.64","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.64","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"build","old_version":"1.3.0","new_version":"1.6.0","repository_url":"https://github.com/pypa/build"},{"name":"celery","old_version":"5.6.2","new_version":"5.6.3","repository_url":"https://github.com/celery/celery"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"chromadb","old_version":"1.0.15","new_version":"1.5.9","repository_url":"https://github.com/chroma-core/chroma"},{"name":"click","old_version":"8.2.1","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"colorlog","old_version":"6.9.0","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.13.4","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cross-web","old_version":"0.4.1","new_version":"0.7.0","repository_url":"https://github.com/usecross/cross-web"},{"name":"decorator","old_version":"5.2.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"discord-py","old_version":"2.5.2","new_version":"2.7.1","repository_url":"https://github.com/Rapptz/discord.py"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"durationpy","old_version":"0.10","new_version":"0.11","repository_url":"https://github.com/icholy/durationpy"},{"name":"fabric","old_version":"3.2.2","new_version":"3.2.3","repository_url":"https://github.com/fabric/fabric"},{"name":"fakeredis","old_version":"2.33.0","new_version":"2.37.1","repository_url":"https://github.com/cunla/fakeredis-py"},{"name":"feedparser","old_version":"6.0.11","new_version":"6.0.14","repository_url":"https://github.com/kurtmckee/feedparser"},{"name":"filelock","old_version":"3.20.3","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"flask-cors","old_version":"6.0.1","new_version":"6.0.5","repository_url":"https://github.com/corydolphin/flask-cors"},{"name":"flask-socketio","old_version":"5.5.1","new_version":"5.6.1","repository_url":"https://github.com/miguelgrinberg/flask-socketio"},{"name":"flatbuffers","old_version":"25.2.10","new_version":"25.12.19","repository_url":"https://github.com/google/flatbuffers"},{"name":"fonttools","old_version":"4.60.2","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.7.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geographiclib","old_version":"2.0","new_version":"2.1","repository_url":"https://github.com/geographiclib/geographiclib-python"},{"name":"geopy","old_version":"2.4.1","new_version":"2.5.0","repository_url":"https://github.com/geopy/geopy"},{"name":"gitpython","old_version":"3.1.50","new_version":"3.1.61","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"graphql-core","old_version":"3.2.8","new_version":"3.2.12","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"hiredis","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httptools","old_version":"0.6.4","new_version":"0.8.0","repository_url":"https://github.com/MagicStack/httptools"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"jiter","old_version":"0.10.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"joblib","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2025.4.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"langgraph","old_version":"1.1.0","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-checkpoint","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-prebuilt","old_version":"1.0.8","new_version":"1.1.0","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langgraph-sdk","old_version":"0.3.13","new_version":"0.4.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"levenshtein","old_version":"0.27.3","new_version":"0.27.4","repository_url":"https://github.com/rapidfuzz/Levenshtein"},{"name":"lxml","old_version":"6.1.0","new_version":"6.1.3","repository_url":"https://github.com/lxml/lxml"},{"name":"mako","old_version":"1.3.12","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib","old_version":"3.10.5","new_version":"3.11.1","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mmh3","old_version":"5.2.0","new_version":"5.3.0","repository_url":"https://github.com/hajimes/mmh3"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msgpack","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"multidict","old_version":"6.6.3","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"narwhals","old_version":"2.0.1","new_version":"2.25.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"networkx","old_version":"3.5","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.3.2","new_version":"2.5.2","repository_url":"https://github.com/numpy/numpy"},{"name":"onnxruntime","old_version":"1.22.1","new_version":"1.29.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"openai","old_version":"1.98.0","new_version":"1.109.1","repository_url":"https://github.com/openai/openai-python"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-distro","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-httpx","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-redis","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-sqlalchemy","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-system-metrics","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"orjson","old_version":"3.11.7","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathspec","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pip-tools","old_version":"7.5.3","new_version":"7.6.1","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pip-audit","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/pypa/pip-audit"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.52","new_version":"3.0.53","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"propcache","old_version":"0.3.2","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-cord","old_version":"2.6.1","new_version":"2.8.1","repository_url":"https://github.com/Pycord-Development/pycord"},{"name":"pyasn1","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pybase64","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydeck","old_version":"0.9.1","new_version":"0.9.3","repository_url":"https://github.com/visgl/deck.gl"},{"name":"pygithub","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/pygithub/pygithub"},{"name":"pygments","old_version":"2.20.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pylint","old_version":"4.0.5","new_version":"4.0.8","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypika","old_version":"0.48.9","new_version":"0.51.1","repository_url":"https://github.com/kayak/pypika"},{"name":"pyreadline3","old_version":"3.5.4","new_version":"3.5.6","repository_url":"https://github.com/pyreadline3/pyreadline3"},{"name":"python-engineio","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/miguelgrinberg/python-engineio"},{"name":"python-levenshtein","old_version":"0.27.3","new_version":"0.27.4","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"python-socketio","old_version":"5.14.0","new_version":"5.16.4","repository_url":"https://github.com/miguelgrinberg/python-socketio"},{"name":"qiskit","old_version":"2.3.1","new_version":"2.5.2","repository_url":"https://github.com/Qiskit/qiskit"},{"name":"rapidfuzz","old_version":"3.14.3","new_version":"3.14.6","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"rustworkx","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/Qiskit/rustworkx"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"safehttpx","old_version":"0.1.6","new_version":"0.1.7","repository_url":"https://github.com/gradio-app/safehttpx"},{"name":"scikit-learn","old_version":"1.7.1","new_version":"1.9.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.12.0","new_version":"1.18.1","repository_url":"https://github.com/scipy/scipy"},{"name":"slowapi","old_version":"0.1.9","new_version":"0.1.10","repository_url":"https://github.com/laurents/slowapi"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"soupsieve","old_version":"2.7","new_version":"2.9.2","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.52","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"stevedore","old_version":"5.4.1","new_version":"5.9.1"},{"name":"strawberry-graphql","old_version":"0.312.3","new_version":"0.327.1","repository_url":"https://github.com/sponsors/strawberry-graphql"},{"name":"tomlkit","old_version":"0.13.3","new_version":"0.15.1","repository_url":"https://github.com/python-poetry/tomlkit"},{"name":"tqdm","old_version":"4.66.1","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.16.0","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"types-requests","old_version":"2.32.4.20260107","new_version":"2.33.0.20260712","repository_url":"https://github.com/python/typeshed"},{"name":"typing-inspection","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzlocal","old_version":"5.3.1","new_version":"5.4.4","repository_url":"https://github.com/regebro/tzlocal"},{"name":"uuid-utils","old_version":"0.14.1","new_version":"0.17.0","repository_url":"https://github.com/aminalaee/uuid-utils"},{"name":"uvicorn","old_version":"0.27.1","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.5.3","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.2","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"wsproto","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/python-hyper/wsproto"},{"name":"yarl","old_version":"1.20.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"safety","old_version":"3.2.0","new_version":"3.8.1","repository_url":"https://github.com/pyupio/safety"},{"name":"opentelemetry-instrumentation-celery","old_version":"0.61b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"langchain-community","old_version":"0.3.5","new_version":"0.4.2","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"langserve","old_version":"0.2.1","new_version":"0.3.3","repository_url":"https://github.com/langchain-ai/langserve"},{"name":"autogen","old_version":"0.5.0","new_version":"0.14.1","repository_url":"https://github.com/ag2ai/ag2classic"},{"name":"eth-account","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/ApeWorX/eth-account"},{"name":"eth-keys","old_version":"0.7.1","new_version":"0.8.0","repository_url":"https://github.com/ApeWorX/eth-keys"},{"name":"semgrep","old_version":"1.92.0","new_version":"1.176.0","repository_url":"https://github.com/semgrep/semgrep"},{"name":"pytest-benchmark","old_version":"5.1.0","new_version":"5.3.0","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"accelerate","old_version":"1.10.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"bitsandbytes","old_version":"0.46.1","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"langchain-text-splitters","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.7.16","new_version":"0.12.1","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"safetensors","old_version":"0.5.3","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"streamlit","old_version":"1.54.0","new_version":"1.63.0","repository_url":"https://github.com/streamlit/streamlit"},{"name":"tokenizers","old_version":"0.21.4","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"torch","old_version":"2.2.0","new_version":"2.14.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.17.0","new_version":"0.29.0","repository_url":"https://github.com/pytorch/vision"},{"name":"torchaudio","old_version":"2.2.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/audio"},{"name":"scikit-image","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"wyn-wav2lip","old_version":"0.1.0","new_version":"0.2.3"},{"name":"face-alignment","old_version":"1.4.1","new_version":"1.5.0","repository_url":"https://github.com/1adrianb/face-alignment"},{"name":"azure-cognitiveservices-speech","old_version":"1.35.0","new_version":"1.51.2"},{"name":"supabase","old_version":"2.3.4","new_version":"2.31.0","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the patch-and-minor group with 189 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.14.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.5.1` |\n| [httpx](https://github.com/encode/httpx) | `0.26.0` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.34.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.2.1` | `0.16.5` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.26.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.3` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.2` | `0.48.0` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.9` | `1.8.0` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.0` | `2.13.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.32` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.5` | `6.5.8` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.111.0` | `0.141.1` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.19.1` |\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| [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.2` | `3.11.3` |\n| [arq](https://github.com/python-arq/arq) | `0.27.0` | `0.28.0` |\n| [asgiref](https://github.com/django/asgiref) | `3.11.1` | `3.12.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `4.0.4` | `4.3.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.6` | `1.9.4` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.15.0` |\n| [bidict](https://github.com/jab/bidict) | `0.23.1` | `0.24.1` |\n| [boto3](https://github.com/boto/boto3) | `1.42.64` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.42.64` | `1.43.86` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.6.0` |\n| [celery](https://github.com/celery/celery) | `5.6.2` | `5.6.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [chromadb](https://github.com/chroma-core/chroma) | `1.0.15` | `1.5.9` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.5.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.9.0` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.16.0` |\n| [cross-web](https://github.com/usecross/cross-web) | `0.4.1` | `0.7.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.2.1` | `5.3.1` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [discord-py](https://github.com/Rapptz/discord.py) | `2.5.2` | `2.7.1` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [durationpy](https://github.com/icholy/durationpy) | `0.10` | `0.11` |\n| [fabric](https://github.com/fabric/fabric) | `3.2.2` | `3.2.3` |\n| [fakeredis](https://github.com/cunla/fakeredis-py) | `2.33.0` | `2.37.1` |\n| [feedparser](https://github.com/kurtmckee/feedparser) | `6.0.11` | `6.0.14` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.3` | `3.32.5` |\n| [flask-cors](https://github.com/corydolphin/flask-cors) | `6.0.1` | `6.0.5` |\n| [flask-socketio](https://github.com/miguelgrinberg/flask-socketio) | `5.5.1` | `5.6.1` |\n| [flatbuffers](https://github.com/google/flatbuffers) | `25.2.10` | `25.12.19` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.2` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.7.0` | `1.8.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.7.0` |\n| [geographiclib](https://github.com/geographiclib/geographiclib-python) | `2.0` | `2.1` |\n| [geopy](https://github.com/geopy/geopy) | `2.4.1` | `2.5.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.50` | `3.1.61` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.3` | `2.57.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.8` | `3.2.12` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.83.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.3.0` | `3.4.1` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.8.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [jiter](https://github.com/pydantic/jiter) | `0.10.0` | `0.16.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.26.0` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.5.1` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.1.0` | `1.2.11` |\n| [langgraph-checkpoint](https://github.com/langchain-ai/langgraph) | `4.0.1` | `4.2.0` |\n| [langgraph-prebuilt](https://github.com/langchain-ai/langgraph) | `1.0.8` | `1.1.0` |\n| [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.3.13` | `0.4.4` |\n| [levenshtein](https://github.com/rapidfuzz/Levenshtein) | `0.27.3` | `0.27.4` |\n| [lxml](https://github.com/lxml/lxml) | `6.1.0` | `6.1.3` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.12` | `1.4.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.5` | `3.11.1` |\n| [mmh3](https://github.com/hajimes/mmh3) | `5.2.0` | `5.3.0` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.2` | `1.2.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.3` | `6.7.1` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.0.1` | `2.25.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.2` | `2.5.2` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.22.1` | `1.29.0` |\n| [openai](https://github.com/openai/openai-python) | `1.98.0` | `1.109.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-distro](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-httpx](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-redis](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-sqlalchemy](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-instrumentation-system-metrics](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.65b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.12.0` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.1.0` | `1.1.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.5.3` | `7.6.1` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.8.0` | `2.10.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.11.7` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.52` | `3.0.53` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.3.2` | `0.5.2` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.12` |\n| [py-cord](https://github.com/Pycord-Development/pycord) | `2.6.1` | `2.8.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.3` | `0.6.4` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.2` | `1.5.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.15.0` |\n| [pydeck](https://github.com/visgl/deck.gl) | `0.9.1` | `0.9.3` |\n| [pygithub](https://github.com/pygithub/pygithub) | `2.9.0` | `2.10.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.5` | `4.0.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.2` |\n| [pypika](https://github.com/kayak/pypika) | `0.48.9` | `0.51.1` |\n| [pyreadline3](https://github.com/pyreadline3/pyreadline3) | `3.5.4` | `3.5.6` |\n| [python-engineio](https://github.com/miguelgrinberg/python-engineio) | `4.12.2` | `4.14.0` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.27.3` | `0.27.4` |\n| [python-socketio](https://github.com/miguelgrinberg/python-socketio) | `5.14.0` | `5.16.4` |\n| [qiskit](https://github.com/Qiskit/qiskit) | `2.3.1` | `2.5.2` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.14.3` | `3.14.6` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [rustworkx](https://github.com/Qiskit/rustworkx) | `0.17.1` | `0.18.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.19.2` |\n| [safehttpx](https://github.com/gradio-app/safehttpx) | `0.1.6` | `0.1.7` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.1` | `1.9.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.12.0` | `1.18.1` |\n| [slowapi](https://github.com/laurents/slowapi) | `0.1.9` | `0.1.10` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.9.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.52` |\n| [stevedore](https://docs.openstack.org/stevedore) | `5.4.1` | `5.9.1` |\n| [strawberry-graphql](https://github.com/sponsors/strawberry-graphql) | `0.312.3` | `0.327.1` |\n| [tomlkit](https://github.com/python-poetry/tomlkit) | `0.13.3` | `0.15.1` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.70.0` |\n| [typer](https://github.com/fastapi/typer) | `0.16.0` | `0.27.2` |\n| [types-requests](https://github.com/python/typeshed) | `2.32.4.20260107` | `2.33.0.20260712` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.2` | `0.4.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.16.0` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.3.1` | `5.4.4` |\n| [uuid-utils](https://github.com/aminalaee/uuid-utils) | `0.14.1` | `0.17.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.27.1` | `0.52.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.2.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.5.3` | `0.8.3` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.20.1` | `1.24.5` |\n| [safety](https://github.com/pyupio/safety) | `3.2.0` | `3.8.1` |\n| [opentelemetry-instrumentation-celery](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.65b0` |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.5` | `0.4.2` |\n| [langserve](https://github.com/langchain-ai/langserve) | `0.2.1` | `0.3.3` |\n| [autogen](https://github.com/ag2ai/ag2classic) | `0.5.0` | `0.14.1` |\n| [eth-account](https://github.com/ApeWorX/eth-account) | `0.13.0` | `0.14.0` |\n| [eth-keys](https://github.com/ApeWorX/eth-keys) | `0.7.1` | `0.8.0` |\n| [semgrep](https://github.com/semgrep/semgrep) | `1.92.0` | `1.176.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.1.0` | `5.3.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.10.0` | `1.14.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.46.1` | `0.50.2` |\n| [langchain-text-splitters](https://github.com/langchain-ai/langchain) | `1.1.1` | `1.1.2` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.16` | `0.12.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.5.3` | `0.8.0` |\n| [streamlit](https://github.com/streamlit/streamlit) | `1.54.0` | `1.63.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.21.4` | `0.23.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.2.0` | `2.14.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.17.0` | `0.29.0` |\n| [torchaudio](https://github.com/pytorch/audio) | `2.2.0` | `2.11.0` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.22.0` | `0.26.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| wyn-wav2lip | `0.1.0` | `0.2.3` |\n| [face-alignment](https://github.com/1adrianb/face-alignment) | `1.4.1` | `1.5.0` |\n| azure-cognitiveservices-speech | `1.35.0` | `1.51.2` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.3.4` | `2.31.0` |\n\nUpdates `anyio` from 4.9.0 to 4.14.2\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.14.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eByteReceiveStream.receive()\u003c/code\u003e implementations to raise a \u003ccode\u003eValueError\u003c/code\u003e when \u003ccode\u003emax_bytes\u003c/code\u003e is not a positive integer (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1191\"\u003e#1191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting \u003ccode\u003efloat(\u0026quot;inf\u0026quot;)\u003c/code\u003e when the limiter was instantiated outside of an event loop. The adapter setter checked for infinity by identity (\u003ccode\u003evalue is math.inf\u003c/code\u003e), so only the exact \u003ccode\u003emath.inf\u003c/code\u003e singleton was accepted, while every backend setter (using \u003ccode\u003emath.isinf()\u003c/code\u003e) accepts any positive infinity (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1189\"\u003e#1189\u003c/a\u003e; PR by \u003ca href=\"https://github.com/greymoth-jp\"\u003e\u003ccode\u003e@​greymoth-jp\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eto_process.run_sync()\u003c/code\u003e deadlocking when the worker function writes enough data to \u003ccode\u003esys.stderr\u003c/code\u003e to fill the (undrained) pipe buffer. The worker process now redirects \u003ccode\u003esys.stderr\u003c/code\u003e to \u003ccode\u003eos.devnull\u003c/code\u003e as well, matching the documented behavior\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eTLSStream.wrap()\u003c/code\u003e matching an internationalized (unicode) host name against the peer certificate using IDNA 2003 (via the standard library) instead of IDNA 2008, which could cause the host name to be matched against the wrong certificate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1208\"\u003e#1208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.open_process()\u003c/code\u003e (and \u003ccode\u003erun_process()\u003c/code\u003e) ignoring the \u003ccode\u003eextra_groups\u003c/code\u003e argument, as it mistakenly passed the value of the \u003ccode\u003egroup\u003c/code\u003e argument instead (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1209\"\u003e#1209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.acquire_nowait()\u003c/code\u003e and \u003ccode\u003eCapacityLimiter.acquire_nowait_on_behalf_of()\u003c/code\u003e raising \u003ccode\u003etrio.WouldBlock\u003c/code\u003e instead of \u003ccode\u003eanyio.WouldBlock\u003c/code\u003e on the \u003ccode\u003etrio\u003c/code\u003e backend when there are no tokens available (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter\u003c/code\u003e on the asyncio backend over-granting tokens (\u003ccode\u003eborrowed_tokens\u003c/code\u003e exceeding \u003ccode\u003etotal_tokens\u003c/code\u003e and \u003ccode\u003eavailable_tokens\u003c/code\u003e going negative) when a non-blocking acquire was made in the window between a token being released and the notified waiter resuming. The freed token is now reserved for the woken waiter right away, so the non-blocking acquire correctly raises \u003ccode\u003eWouldBlock\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1170\"\u003e#1170\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed unnecessary CPU spin when delivering cancellation from \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio under certain conditions, including improper cancel scope nesting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.15\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an asynchronous implementation of the \u003ccode\u003eitertools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/998\"\u003e#998\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003elocal_port\u003c/code\u003e parameter to \u003ccode\u003econnect_tcp()\u003c/code\u003e to allow binding to a specific local port before connecting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1067\"\u003e#1067\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nullwiz\"\u003e\u003ccode\u003e@​nullwiz\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for custom capacity limiters in async path and file I/O functions and classes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecreate_task()\u003c/code\u003e task group method for easier asyncio migration (returns a \u003ccode\u003eTaskHandle\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1098\"\u003e#1098\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option for \u003ccode\u003eTaskGroup.start()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e (which then contains the start value in the \u003ccode\u003estart_value\u003c/code\u003e property)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecancel()\u003c/code\u003e convenience method to \u003ccode\u003eTaskGroup\u003c/code\u003e as a shortcut for cancelling the task group's cancel scope\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved the error message when a known backend is not installed to suggest the install command (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1115\"\u003e#1115\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\u003eImproved \u003ccode\u003eanyio.Path\u003c/code\u003e to preserve subclass types by returning \u003ccode\u003eSelf\u003c/code\u003e in methods that return path objects (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1130\"\u003e#1130\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\u003eChanged the parameter type annotation in \u003ccode\u003eanyio.Path.write_bytes()\u003c/code\u003e to accept any \u003ccode\u003eReadableBuffer\u003c/code\u003e, thus allowing it to accept \u003ccode\u003ebytearray\u003c/code\u003e and \u003ccode\u003ememoryview\u003c/code\u003e to match \u003ccode\u003epathlib.Path.write_bytes()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1135\"\u003e#1135\u003c/a\u003e; PR by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis reverts an earlier change from v3.7.0 which was made in error. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1153\"\u003e#1153\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.run\u003c/code\u003e to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1171\"\u003e#1171\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 several classes (and their subclasses) to have \u003ccode\u003e__slots__\u003c/code\u003e (with \u003ccode\u003e__weakref__\u003c/code\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CancelScope\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c384f99687c64c59ed8a11c3a0f11a2d57daff71\"\u003e\u003ccode\u003ec384f99\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dbba29d1ade7936f18fb71ba24aa92978673482a\"\u003e\u003ccode\u003edbba29d\u003c/code\u003e\u003c/a\u003e Fixed 100% CPU spin on cancel scope misuse (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6bbc6c33caabc13af5bc4256f745027cf8d5d7b8\"\u003e\u003ccode\u003e6bbc6c3\u003c/code\u003e\u003c/a\u003e Fix CapacityLimiter over-granting tokens on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f82b2537cbbe98f3df3f295499056ab7de0b15b\"\u003e\u003ccode\u003e6f82b25\u003c/code\u003e\u003c/a\u003e Refactored TestTLSStream.test_receive_invalid_max_bytes() to be less flaky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/be24b0414f67f604bcbdd5ea3bcc56ab920d872e\"\u003e\u003ccode\u003ebe24b04\u003c/code\u003e\u003c/a\u003e Relaxed timeouts to fix test flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/81135065749b4f60c06619b9caaf0a11871c1ddf\"\u003e\u003ccode\u003e8113506\u003c/code\u003e\u003c/a\u003e Fix test flakiness caused by slow callback duration logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1e988b617b69588e33fecb75e36a9837245f562f\"\u003e\u003ccode\u003e1e988b6\u003c/code\u003e\u003c/a\u003e Fixed CapacityLimiter raising trio.WouldBlock instead of anyio.WouldBlock (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/44713f345cd29dd4e7d76553c134543a1296cc62\"\u003e\u003ccode\u003e44713f3\u003c/code\u003e\u003c/a\u003e Pin setup-uv to a commit sha across downstream jobs (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1b7301c8264b0d2e8d24a5788fd29e93dea4040\"\u003e\u003ccode\u003ef1b7301\u003c/code\u003e\u003c/a\u003e Fixed stderr writes in a worker subprocess causing a deadlock (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/212be93c2cf2c841e753e95e5e2c543ee7feca90\"\u003e\u003ccode\u003e212be93\u003c/code\u003e\u003c/a\u003e Fix flaky test_tcp_listener_same_port using a hardcoded port (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1206\"\u003e#1206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.5.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.5.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.9\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.8...3.4.9\"\u003e3.4.9\u003c/a\u003e (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in our fallback path leading to a decode error. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/771\"\u003e#771\u003c/a\u003e)\nWe've yanked 3.4.8 as a result of that bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.7...3.4.8\"\u003e3.4.8\u003c/a\u003e (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.5.0...3.5.1\"\u003e3.5.1\u003c/a\u003e (2026-08-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised upper bound of setuptools to v84 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache performance access optimization for our CharInfo struct (prebuilt only).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer decoding large content when the noise detector output give a high entropy.\nOnly impacted large content input \u0026gt;1M bytes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.9...3.5.0\"\u003e3.5.0\u003c/a\u003e (2026-08-12)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExplicit support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComparing a CharsetMatch to a non-alias encoding strings (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.\u003c/li\u003e\n\u003cli\u003eiso2022* cases misdetected due to a flaw in our multibyte chunking logic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced the optional mypyc build with Cython extensions while retaining the\npure Python fallback. The previous engine (mypyc) started to hit rough limit around\nthe optimization of our noise/coherence detector while Cython allows us to\nsteer the engine toward the right generated optimized sources.\nThis change SHOULD not impact bundler (e.g. Pyinstaller) as the module are\nimmediately discoverable (i.e. not hidden import like mypyc did).\nMoreover, a long wished distribution is the abi3 wheels, this will allow us\nto no longer rush each year when a new Python interpreter is released.\nWe still distribute the interpreter specific wheels for faster performance.\u003c/li\u003e\n\u003cli\u003eApplied micro-optimization on several utils.\u003c/li\u003e\n\u003cli\u003eCharsetMatches no longer sort on each match insertion.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.8...3.4.9\"\u003e3.4.9\u003c/a\u003e (2026-07-07)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in our fallback path leading to a decode error. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/771\"\u003e#771\u003c/a\u003e)\nWe've yanked 3.4.8 as a result of that bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.7...3.4.8\"\u003e3.4.8\u003c/a\u003e (2026-07-06)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWall import time due to cascade codec imports for our multibyte first sort of iana supported codecs (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnnecessary json import at runtime (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/753\"\u003e#753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInverse capitalization not seen by noise detector (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/731\"\u003e#731\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/jawah/charset_normalizer/commit/e239bdc5cc1eb1f0db08d4046ad531f805dbea71\"\u003e\u003ccode\u003ee239bdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/795\"\u003e#795\u003c/a\u003e from jawah/release-3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/648ad776db64a00aa7efd70a94656ac43784abb3\"\u003e\u003ccode\u003e648ad77\u003c/code\u003e\u003c/a\u003e docs: update faq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fab27492c39baa61aca12826022e266781108570\"\u003e\u003ccode\u003efab2749\u003c/code\u003e\u003c/a\u003e docs: write changelog for 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/7d32774e75d16cccd3d22c758a77fca135952787\"\u003e\u003ccode\u003e7d32774\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9a69f609f254ba4bfe9d0cbf375728e43360cdf2\"\u003e\u003ccode\u003e9a69f60\u003c/code\u003e\u003c/a\u003e docs: update data/info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/5dcc6dd81a8a0a4bd525f8d6f508da8285caf402\"\u003e\u003ccode\u003e5dcc6dd\u003c/code\u003e\u003c/a\u003e perf: charinfo cache access optimization in cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ea3b4479270762be1228562c590e5a212727f208\"\u003e\u003ccode\u003eea3b447\u003c/code\u003e\u003c/a\u003e fix: do not validate-decode large payload when md says it's noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a05917f87b5f71d6022d8abe2b0af239f65c1111\"\u003e\u003ccode\u003ea05917f\u003c/code\u003e\u003c/a\u003e chore: allow setuptools 84 builds (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/794\"\u003e#794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/3325d87c3c73fa1a8746947151faaf9a41177543\"\u003e\u003ccode\u003e3325d87\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/792\"\u003e#792\u003c/a\u003e from jawah/update-cibuildwheel-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/77203b104216a6d578a682b5ac0514750aa988f7\"\u003e\u003ccode\u003e77203b1\u003c/code\u003e\u003c/a\u003e chore: reformat noxfile.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.26.0 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.27.2\u003c/h2\u003e\n\u003ch2\u003e0.27.2 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReintroduced supposedly-private \u003ccode\u003eURLTypes\u003c/code\u003e shortcut. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/2673\"\u003e#2673\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.27.1\u003c/h2\u003e\n\u003ch2\u003e0.27.1 (27th August, 2024)\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003ezstd\u003c/code\u003e content decoding using the python \u003ccode\u003ezstandard\u003c/code\u003e package is added. Installable using \u003ccode\u003ehttpx[zstd]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3139\"\u003e#3139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error messaging for \u003ccode\u003eInvalidURL\u003c/code\u003e exceptions. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eapp\u003c/code\u003e type signature in \u003ccode\u003eASGITransport\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3109\"\u003e#3109\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/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.2 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReintroduced supposedly-private \u003ccode\u003eURLTypes\u003c/code\u003e shortcut. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/2673\"\u003e#2673\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.1 (27th August, 2024)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003ezstd\u003c/code\u003e content decoding using the python \u003ccode\u003ezstandard\u003c/code\u003e package is added. Installable using \u003ccode\u003ehttpx[zstd]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3139\"\u003e#3139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error messaging for \u003ccode\u003eInvalidURL\u003c/code\u003e exceptions. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3250\"\u003e#3250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eapp\u003c/code\u003e type signature in \u003ccode\u003eASGITransport\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.27.0 (21st February, 2024)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/47f4a96ffaaaa07dca1614409549b5d7a6e7af49\"\u003e\u003ccode\u003e47f4a96\u003c/code\u003e\u003c/a\u003e Handle empty zstd responses (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3412\"\u003e#3412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/189fc4bcbe5f314128775dec66a616ac9a31ad48\"\u003e\u003ccode\u003e189fc4b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md, fix typo(s) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/httpx/compare/0.26.0...0.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore the \u003ccode\u003estd3_rules\u003c/code\u003e option, which had no effect since changes\nto UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e processing in Unicode 16. Note that \u003ccode\u003euts46_remap()\u003c/code\u003e\ndefaults to enabling STD3 rules, so direct callers will see input\ncontaining non-LDH ASCII characters rejected again.\u003c/li\u003e\n\u003cli\u003ePerformance improvements to UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e mapping, particularly for\nASCII-only domains.\u003c/li\u003e\n\u003cli\u003eTest on free-threaded CPython with the GIL disabled and document\nthread safety.\u003c/li\u003e\n\u003cli\u003eExpose the Unicode version of the generated tables as\n\u003ccode\u003eidna.unicode_version\u003c/code\u003e, and show it in \u003ccode\u003eidna --version\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003ecodepoint\u003c/code\u003e and \u003ccode\u003eposition\u003c/code\u003e attributes to\n\u003ccode\u003eIDNAError\u003c/code\u003e so that the failed rule and the offending character can\nbe identified without parsing the exception message.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003etransitional\u003c/code\u003e argument to \u003ccode\u003eencode()\u003c/code\u003e and\n\u003ccode\u003euts46_remap()\u003c/code\u003e is now completely ignored, and gives a deprecation warning\nfor the latter.\u003c/li\u003e\n\u003cli\u003eReject A-labels that are not the canonical Punycode encoding of\ntheir U-label.\u003c/li\u003e\n\u003cli\u003eFix CONTEXTJ violations raising \u003ccode\u003eIDNAError\u003c/code\u003e instead of\n\u003ccode\u003eInvalidCodepointContext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConsistently raise \u003ccode\u003eIDNAError\u003c/code\u003e for empty labels and non-ASCII bytes\npassed to label helper functions and the incremental codec.\u003c/li\u003e\n\u003cli\u003eAdd property-based tests, extended fuzzing targets, coverage\nmeasurement, and CI checks that the data tables match the generator\noutput.\u003c/li\u003e\n\u003cli\u003eVarious code quality and tooling improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to stefan6419846, LouieLuNZ, and Salvatore Corvaglia for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003ev3.18\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.17\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.16\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.15\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.14\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.13\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.12\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/kjd/idna/blob/master/HISTORY.md\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19 (2026-08-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore the \u003ccode\u003estd3_rules\u003c/code\u003e option, which had no effect since changes\nto UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e processing in Unicode 16. Note that \u003ccode\u003euts46_remap()\u003c/code\u003e\ndefaults to enabling STD3 rules, so direct callers will see input\ncontaining non-LDH ASCII characters rejected again.\u003c/li\u003e\n\u003cli\u003ePerformance improvements to UTS \u003ca href=\"https://redirect.github.com/kjd/idna/issues/46\"\u003e#46\u003c/a\u003e mapping, particularly for\nASCII-only domains.\u003c/li\u003e\n\u003cli\u003eTest on free-threaded CPython with the GIL disabled and document\nthread safety.\u003c/li\u003e\n\u003cli\u003eExpose the Unicode version of the generated tables as\n\u003ccode\u003eidna.unicode_version\u003c/code\u003e, and show it in \u003ccode\u003eidna --version\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003ecodepoint\u003c/code\u003e and \u003ccode\u003eposition\u003c/code\u003e attributes to\n\u003ccode\u003eIDNAError\u003c/code\u003e so that the failed rule and the offending character can\nbe identified without parsing the exception message.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003etransitional\u003c/code\u003e argument to \u003ccode\u003eencode()\u003c/code\u003e and\n\u003ccode\u003euts46_remap()\u003c/code\u003e is now completely ignored, and gives a deprecation warning\nfor the latter.\u003c/li\u003e\n\u003cli\u003eReject A-labels that are not the canonical Punycode encoding of\ntheir U-label.\u003c/li\u003e\n\u003cli\u003eFix CONTEXTJ violations raising \u003ccode\u003eIDNAError\u003c/code\u003e instead of\n\u003ccode\u003eInvalidCodepointContext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConsistently raise \u003ccode\u003eIDNAError\u003c/code\u003e for empty labels and non-ASCII bytes\npassed to label helper functions and the incremental codec.\u003c/li\u003e\n\u003cli\u003eAdd property-based tests, extended fuzzing targets, coverage\nmeasurement, and CI checks that the data tables match the generator\noutput.\u003c/li\u003e\n\u003cli\u003eVarious code quality and tooling improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to stefan6419846, LouieLuNZ, and Salvatore Corvaglia for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003e3.18 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen decoding a domain, add a \u003ccode\u003edisplay\u003c/code\u003e argument that will pass\nthrough invalid labels rather than raising an exception.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.17 (2026-05-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSubstantial 75% reduction in memory usage through new data\nstructures and some optimization in processing speed.\u003c/li\u003e\n\u003cli\u003eAdded a general 1024-character input length cap to the public\nvalidation, conversion, and codec entry points. This is well above\nany legitimate domain or label and guards against pathological\ninputs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.16 (2026-05-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a command-line interface (\u003ccode\u003epython -m idna\u003c/code\u003e, also available as\nthe \u003ccode\u003eidna\u003c/code\u003e script). Encodes or decodes one or more domains supplied\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/kjd/idna/commit/03a9a11dd8aecd4fea742cabe20f4d3d9ed82abb\"\u003e\u003ccode\u003e03a9a11\u003c/code\u003e\u003c/a\u003e Release 3.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2d2a7ef0c59210a48407b3dde6d884933cecf093\"\u003e\u003ccode\u003e2d2a7ef\u003c/code\u003e\u003c/a\u003e Pre-release 3.19rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5cce1308d148019c5fa0febceafa13e99cdacfe7\"\u003e\u003ccode\u003e5cce130\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/268\"\u003e#268\u003c/a\u003e from kjd/fix-std3-regex-alert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/3914b75f3e4cbc11e59f92eeecdb16d10871e57f\"\u003e\u003ccode\u003e3914b75\u003c/code\u003e\u003c/a\u003e Split the STD3 disallowed-character range so uppercase is explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ce9fd98ac4073866db276e93834b259f2a5a4ac4\"\u003e\u003ccode\u003ece9fd98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/267\"\u003e#267\u003c/a\u003e from kjd/housekeeping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/809240c3cc9358c9c9c79b2d12ffe39e75ccfb0f\"\u003e\u003ccode\u003e809240c\u003c/code\u003e\u003c/a\u003e Fail CI when the license copyright year is behind the current year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d9e16c523d7d25dcc14100fa80f3e303404e09be\"\u003e\u003ccode\u003ed9e16c5\u003c/code\u003e\u003c/a\u003e Consolidate test fixtures, prune stale gitignore entries, and fix doc typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ef30feeed3a758e96286fdab0315a551f7f5e7d6\"\u003e\u003ccode\u003eef30fee\u003c/code\u003e\u003c/a\u003e Remove dead code and pare back superfluous comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/b907913f854d26cc714f721c6c2cb626d41ac468\"\u003e\u003ccode\u003eb907913\u003c/code\u003e\u003c/a\u003e Tighten the version support and Unicode notes in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/6204cbe343ef438df7c58bc80b94d0f960991d90\"\u003e\u003ccode\u003e6204cbe\u003c/code\u003e\u003c/a\u003e Ignore local build artifacts and stop packaging stray tooling config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.2.1 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://red...\n\n_Description has been truncated_","html_url":"https://github.com/welshDog/HyperCode-V2.4/pull/517","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/welshDog%2FHyperCode-V2.4/issues/517","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/517/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-05T14:55:57.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5358762751","node_id":"PR_kwDOUOzYNc8AAAABCVDSfA","number":10,"state":"open","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T14:55:57.000Z","updated_at":"2026-09-05T14:56:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"detect-installer","old_version":"0.1.0","new_version":"0.2.1"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.28.0` | `1.29.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| detect-installer | `0.1.0` | `0.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.28.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.28.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003e#3421\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003e#3419\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003e#3420\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e to 128 KiB in \u003ccode\u003eGZipResponder\u003c/code\u003e, keeping it usable without the new keyword argument \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3415\"\u003e#3415\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOffload large GZip compression to a worker thread, keeping the event loop responsive. \u003ccode\u003eGZipMiddleware\u003c/code\u003e accepts a new \u003ccode\u003ethread_minimum_size\u003c/code\u003e parameter (default 128 KiB) controlling the minimum body chunk size compressed in a thread \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3410\"\u003e#3410\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e, reducing memory usage during compression \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3411\"\u003e#3411\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLazily allocate \u003ccode\u003eGZipMiddleware\u003c/code\u003e compression resources, avoiding compressor allocation for responses that are never compressed \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3407\"\u003e#3407\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/starlette/commit/4f250d6b814587e20c5365f0a5f0c4d42bcb929f\"\u003e\u003ccode\u003e4f250d6\u003c/code\u003e\u003c/a\u003e Version 1.6.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9eea41ad3c26ad21b9bdfe4578c1cdad6c9b9ac2\"\u003e\u003ccode\u003e9eea41a\u003c/code\u003e\u003c/a\u003e Expose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/38f8999a229610b36f39d11f67d80515a15c6330\"\u003e\u003ccode\u003e38f8999\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3431\"\u003e#3431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c41236c03868fb3779a64101f4ea88cd47877e23\"\u003e\u003ccode\u003ec41236c\u003c/code\u003e\u003c/a\u003e Version 1.5.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9c500db197859dba4a8db13fa8e7d2c55de8152c\"\u003e\u003ccode\u003e9c500db\u003c/code\u003e\u003c/a\u003e Limit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3430\"\u003e#3430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/78ae82cad482fe66a73fb1217f0a6609b3f998f6\"\u003e\u003ccode\u003e78ae82c\u003c/code\u003e\u003c/a\u003e Reject inverted single-byte Range like bytes=5-4 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3389\"\u003e#3389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c1d6edaf43920104d4389e983c3e0314f6af14cf\"\u003e\u003ccode\u003ec1d6eda\u003c/code\u003e\u003c/a\u003e chore(deps): bump pymdown-extensions from 11.0 to 11.0.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3429\"\u003e#3429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/ee66ca48418780d6415d231851b31464febc32de\"\u003e\u003ccode\u003eee66ca4\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 8 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/00d10167523f819d39d5ca36732348d58645a447\"\u003e\u003ccode\u003e00d1016\u003c/code\u003e\u003c/a\u003e fix(tests): skip test_staticfiles_filename_too_long on Windows where os.pathc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d96887ea7b49db3d1d15994be6438c7fe99936f4\"\u003e\u003ccode\u003ed96887e\u003c/code\u003e\u003c/a\u003e Add Pydantic Logfire banner to the docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3428\"\u003e#3428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.3.1...1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.13.3 to 3.14.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst\"\u003eaiohttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.14.3 (2026-07-22)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the client dropping only the first \u003ccode\u003eAuthorization\u003c/code\u003e, \u003ccode\u003eCookie\u003c/code\u003e and\n\u003ccode\u003eProxy-Authorization\u003c/code\u003e header when a redirect crossed an origin -- by :user:\u003ccode\u003earshsmith1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13180\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error message construction in the C HTTP parser -- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13222\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e3.14.2 (2026-07-20)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed :py:attr:\u003ccode\u003e~aiohttp.web.StreamResponse.last_modified\u003c/code\u003e rounding a\n:class:\u003ccode\u003edatetime.datetime\u003c/code\u003e with a fractional second down.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5303\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed resolving \u003ccode\u003elocalhost\u003c/code\u003e on Windows to fall back without \u003ccode\u003eAI_ADDRCONFIG\u003c/code\u003e\nwhen the first lookup fails, so \u003ccode\u003elocalhost\u003c/code\u003e still works without an active\nnetwork.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5357\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/5e392ce0456f5235a4ee6ad46f0e806df2f15873\"\u003e\u003ccode\u003e5e392ce\u003c/code\u003e\u003c/a\u003e Release v3.14.3 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13225\"\u003e#13225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d\"\u003e\u003ccode\u003e49f65d5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13222\"\u003e#13222\u003c/a\u003e/f4866933 backport][3.14] Build C parser error message from bounded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/240099e5216a01b32919dcd8dd5c6c0b1bf83671\"\u003e\u003ccode\u003e240099e\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13180\"\u003e#13180\u003c/a\u003e/ee53d655 backport][3.14] drop every copy of credential headers on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/d93f30a302f8b930074fe14a2be7b2088ba28111\"\u003e\u003ccode\u003ed93f30a\u003c/code\u003e\u003c/a\u003e Bump version (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13202\"\u003e#13202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/c1b9212ad3d93c24b5fc66ad0849597166bc816e\"\u003e\u003ccode\u003ec1b9212\u003c/code\u003e\u003c/a\u003e Release v3.14.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13201\"\u003e#13201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/380d4b55e8df48dfd62f1addfb530426f6bc4106\"\u003e\u003ccode\u003e380d4b5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13054\"\u003e#13054\u003c/a\u003e/ed8b040c backport][3.14] escape backslashes in digest auth quoted-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/e1e1bee363dfba04a9a75c8801717da2ed5bdcb9\"\u003e\u003ccode\u003ee1e1bee\u003c/code\u003e\u003c/a\u003e Make llhttp method array size dynamic (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13174\"\u003e#13174\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13196\"\u003e#13196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/aa4cf29b6a5ad6f4d21fa1dd3f69193dc2f5d505\"\u003e\u003ccode\u003eaa4cf29\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13170\"\u003e#13170\u003c/a\u003e/2b906869 backport][3.14] Fix StreamResponse.last_modified rounding...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/71b57b40d85a0723c92b0a5a37ebdf518210d2ea\"\u003e\u003ccode\u003e71b57b4\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13172\"\u003e#13172\u003c/a\u003e/a57747ed backport][3.14] Fix C parser folding fragment into query_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/64a03fb620b623e5a5a1b7103c07ae3e536a0d40\"\u003e\u003ccode\u003e64a03fb\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13169\"\u003e#13169\u003c/a\u003e/1adc0cd7 backport][3.14] ...\n\n_Description has been truncated_","html_url":"https://github.com/zhao6300/vllm-opt/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao6300%2Fvllm-opt/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-05T05:30:00.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5355854093","node_id":"PR_kwDOUHlKes8AAAABCS106w","number":10,"state":"open","title":"build(deps): bump the minor-update group across 1 directory with 185 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T05:30:00.000Z","updated_at":"2026-09-05T05:30:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-update","update_count":185,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 185 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 head...\n\n_Description has been truncated_","html_url":"https://github.com/Entrpi/vllm-glm-5.3-flash-spark/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Entrpi%2Fvllm-glm-5.3-flash-spark/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-05T04:10:37.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5355478249","node_id":"PR_kwDOTx9lYc8AAAABCSjYaA","number":10,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-05T04:10:37.000Z","updated_at":"2026-09-05T04:10:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"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.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.86","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.28.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.86` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.86` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/yadongtan/vllm_study/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadongtan%2Fvllm_study/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-04T19:03:51.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5351977869","node_id":"PR_kwDOUGq5rs8AAAABCPyjvw","number":15,"state":"open","title":"Bump the minor-update group across 1 directory with 184 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T19:03:51.000Z","updated_at":"2026-09-04T19:04:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":184,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.7","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 184 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.7` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/fast...\n\n_Description has been truncated_","html_url":"https://github.com/yhfgyyf/vllm-GLM-5.3-Flash-sm120/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhfgyyf%2Fvllm-GLM-5.3-Flash-sm120/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-04T02:14:11.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5343417516","node_id":"PR_kwDOToXI7s8AAAABCI8HDw","number":20,"state":"open","title":"Bump the minor-update group across 1 directory with 187 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T02:14:11.000Z","updated_at":"2026-09-04T02:14:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":187,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.25.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.22.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 187 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.25.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.22.0` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.1.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/c...\n\n_Description has been truncated_","html_url":"https://github.com/btlqql/vllm-rwkv7/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/btlqql%2Fvllm-rwkv7/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-04T01:36:37.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5343191056","node_id":"PR_kwDOTbO7F88AAAABCIxLYA","number":18,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T01:36:37.000Z","updated_at":"2026-09-04T01:36:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.9.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.9.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.6` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/codecookinging/vllm_marlin/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecookinging%2Fvllm_marlin/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-04T01:19:59.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5343097489","node_id":"PR_kwDOTw8DQM8AAAABCIso_A","number":14,"state":"open","title":"Bump the minor-update group across 1 directory with 187 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-04T01:19:59.000Z","updated_at":"2026-09-04T01:20:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":187,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.8.31","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.26.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"auto-round-lib","old_version":"0.14.2","new_version":"0.15.0","repository_url":"https://github.com/intel/auto-round"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.85","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.0","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":"cohere","old_version":"7.0.8","new_version":"7.1.1","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.64.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.6.0","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.5","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"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.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyrate-limiter","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/vutran1710/PyrateLimiter"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 187 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.8.31` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.26.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.5` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [auto-round-lib](https://github.com/intel/auto-round) | `0.14.2` | `0.15.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.28.0` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.85` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.85` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.64.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.6.0` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.5` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pyrate-limiter](https://github.com/vutran1710/PyrateLimiter) | `4.4.0` | `4.5.0` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.8.31\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/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\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\u003c/code\u003e\u003c/a\u003e Python 3.15 not released yet.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.8.31\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.26.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.26.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 ...\n\n_Description has been truncated_","html_url":"https://github.com/kuoihao/vllm-tle/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuoihao%2Fvllm-tle/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"3.4.0","new_version":"3.4.1","update_type":"patch","path":null,"pr_created_at":"2026-09-03T22:50:28.000Z","version_change":"3.4.0 → 3.4.1","issue":{"uuid":"5342228020","node_id":"PR_kwDOTbcjQc8AAAABCIBcdQ","number":42,"state":"closed","title":"build(deps): bump the python group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T22:47:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-03T22:50:28.000Z","updated_at":"2026-09-04T22:47:42.000Z","time_to_close":86233,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python","update_count":16,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.2.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"psycopg","old_version":"3.3.4","new_version":"3.3.5"},{"name":"sentry-sdk","old_version":"2.66.1","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"uvicorn","old_version":"0.52.0","new_version":"0.52.4"},{"name":"coverage","old_version":"7.15.2","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.7","new_version":"6.1.0"},{"name":"django-upgrade","old_version":"1.31.1","new_version":"1.32.0","repository_url":"https://github.com/adamchainz/django-upgrade"},{"name":"djlint","old_version":"1.43.1","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.2.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.3.4` | `3.3.5` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.66.1` | `2.68.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.52.0` | `0.52.4` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.2` | `7.16.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.7` | `6.1.0` |\n| [django-upgrade](https://github.com/adamchainz/django-upgrade) | `1.31.1` | `1.32.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.43.1` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.5` |\n\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.2.0\u003c/h2\u003e\n\u003cp\u003eCleartext HTTP/2 lands, and an HTTP/2 security fix.\u003c/p\u003e\n\u003ch2\u003eCleartext HTTP/2 (h2c)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ehttp2_cleartext\u003c/code\u003e accepts \u003ccode\u003eprior-knowledge\u003c/code\u003e, \u003ccode\u003eupgrade\u003c/code\u003e, \u003ccode\u003eboth\u003c/code\u003e or \u003ccode\u003eoff\u003c/code\u003e (the\ndefault). Prior knowledge serves a connection that opens with the HTTP/2\npreface; \u003ccode\u003eupgrade\u003c/code\u003e honours an HTTP/1.1 \u003ccode\u003eUpgrade: h2c\u003c/code\u003e request. Both work on the\ngthread, gevent and asgi workers.\u003c/p\u003e\n\u003cp\u003eThis is for deployments where TLS is terminated by a proxy that speaks HTTP/2\nupstream, so the hop into gunicorn no longer drops to HTTP/1.1. Only peers in\n\u003ccode\u003eforwarded_allow_ips\u003c/code\u003e are considered; everyone else is served HTTP/1.x exactly\nas if the setting were off. Each mechanism is enabled separately, so turning one\non does not turn the other on.\u003c/p\u003e\n\u003cp\u003eDo not expose a cleartext HTTP/2 port to the internet.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eHTTP2Request\u003c/code\u003e built its headers straight from the stream, so nothing the HTTP/1\npath enforces applied over HTTP/2: the underscore and \u003ccode\u003eheader_map\u003c/code\u003e policy,\nduplicate \u003ccode\u003eHost\u003c/code\u003e and \u003ccode\u003eContent-Type\u003c/code\u003e, control characters in values, and the\n\u003ccode\u003eforwarded_allow_ips\u003c/code\u003e trust gate. An untrusted client could set \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e\nand forge \u003ccode\u003eHTTP_*\u003c/code\u003e entries in the WSGI environ, and decide \u003ccode\u003ewsgi.url_scheme\u003c/code\u003e\nthrough \u003ccode\u003e:scheme\u003c/code\u003e. Both request classes now share one policy mixin, and the\nscheme comes from the transport.\u003c/p\u003e\n\u003cp\u003eIf you serve HTTP/2, this is the reason to upgrade.\u003c/p\u003e\n\u003ch2\u003eOther HTTP/2 fixes\u003c/h2\u003e\n\u003cp\u003eWSGI responses were buffered whole before anything was sent; they stream now.\nHEAD, 204 and 304 no longer carry a body. Events read while blocked on a\nflow-control window were discarded, losing requests and body data outright.\n\u003ccode\u003esendfile()\u003c/code\u003e is refused on HTTP/2 responses rather than bypassing framing.\u003c/p\u003e\n\u003ch2\u003eRequest bodies dropped on Upgrade requests\u003c/h2\u003e\n\u003cp\u003eOn the ASGI worker with the fast parser, any request carrying an \u003ccode\u003eUpgrade\u003c/code\u003e\nheader reached the application with an empty body, whatever the header's value\nand with HTTP/2 switched off entirely. Fixed in \u003ccode\u003egunicorn_h1c\u003c/code\u003e 0.6.9, which the\n\u003ccode\u003efast\u003c/code\u003e extra now requires.\u003c/p\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://gunicorn.org/news/\"\u003ehttps://gunicorn.org/news/\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\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/benoitc/gunicorn/commit/36f2a3c1b80dfa41d70859d12c5bfbbdc23a3c38\"\u003e\u003ccode\u003e36f2a3c\u003c/code\u003e\u003c/a\u003e gunicorn 26.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbba3505f423bfb91af3a87e49ed9d232f39a8fe\"\u003e\u003ccode\u003ecbba350\u003c/code\u003e\u003c/a\u003e test: cover the h2c edge paths that had none\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/988541112ebcf3f795c020fc394aa7eed75f9f53\"\u003e\u003ccode\u003e9885411\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3703\"\u003e#3703\u003c/a\u003e from cormier/fix-inconsistency-in-control-socket-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/86f0919806a2d4d4cce376cc2088352e7643b139\"\u003e\u003ccode\u003e86f0919\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3704\"\u003e#3704\u003c/a\u003e from methane/doc-wsgi-h1c\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/585355122efe736946b977c5605e404ff2d6ddd4\"\u003e\u003ccode\u003e5853551\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3712\"\u003e#3712\u003c/a\u003e from Rotzbua/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7bce87e2aa29a4a794eb2b113ff811cad6a80736\"\u003e\u003ccode\u003e7bce87e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3700\"\u003e#3700\u003c/a\u003e from benoitc/fix/sponsor-logo-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/972dfb03b110c430712c32a3d92ef6397ff8eff6\"\u003e\u003ccode\u003e972dfb0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3690\"\u003e#3690\u003c/a\u003e from melbinjp/docs/contributing-settings-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7b3f16be8d9cc051538b7f0b58b236b37c9550f8\"\u003e\u003ccode\u003e7b3f16b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3711\"\u003e#3711\u003c/a\u003e from benoitc/docs/http2-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5bf237c0c7ef5bcdc63046645a17d6bafd609a34\"\u003e\u003ccode\u003e5bf237c\u003c/code\u003e\u003c/a\u003e http2: require gunicorn_h1c 0.6.9 and drop the upgrade body workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7cf03385c574228e28c4952fd410ed2df02acc94\"\u003e\u003ccode\u003e7cf0338\u003c/code\u003e\u003c/a\u003e test: skip the fast-parser cases when gunicorn_h1c is absent\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` 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[c]'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 `sentry-sdk` from 2.66.1 to 2.68.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.68.1\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003eenable_logs\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(logs) Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7237\"\u003e#7237\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e, our logging integrations for the standard library logging module as well as Loguru will auto-collect logs and send them to Sentry as Sentry logs by default, preserving old behavior. Turning automatic collection off for a specific integration can still be achieved using the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration option.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\nenable_logs=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nLoggingIntegration(capture_sentry_logs=True),\u003cbr /\u003e\nLoguruIntegration(capture_sentry_logs=False),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003ePlease note that the \u003ccode\u003eenable_logs\u003c/code\u003e option is deprecated and will be removed in the next major release. The \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API now works regardless of it, and auto-collection can be opted into via the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration-level options, which are \u003ccode\u003eFalse\u003c/code\u003e by default, unless you have \u003ccode\u003eenable_logs=True\u003c/code\u003e. We've added this compatibility layer to make the transition to a \u003ccode\u003eenable_logs\u003c/code\u003e-free world easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(django) Add \u003ccode\u003efailed_request_status_codes\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7140\"\u003e#7140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7207\"\u003e#7207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(google_genai) Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7210\"\u003e#7210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Use \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute when data collection is enabled by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7204\"\u003e#7204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langgraph,huggingface_hub) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7208\"\u003e#7208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7205\"\u003e#7205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai_agents) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7209\"\u003e#7209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.68.0\u003c/h2\u003e\n\u003ch3\u003eImportant\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWe're making \u003ccode\u003eenable_logs\u003c/code\u003e and \u003ccode\u003eenable_metrics\u003c/code\u003e no-op with this release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7177\"\u003e#7177\u003c/a\u003e), and they'll be dropped in the next major.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eenable_logs\u003c/code\u003e also controlled automatic logs collection from the logging and Loguru integrations. These integrations now get an integration-level \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e boolean option to allow for more control over the auto-collection. These options are \u003ccode\u003eFalse\u003c/code\u003e by default, i.e., \u003cstrong\u003enothing is auto-collected without your explicit opt-in\u003c/strong\u003e.\u003c/p\u003e\n\u003ch4\u003eAction Needed\u003c/h4\u003e\n\u003cp\u003eIf you had \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf you were using the \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API, no action necessary, the API will just work.\u003c/li\u003e\n\u003cli\u003eIf you were auto-collecting logs from either \u003ccode\u003eLoggingIntegration\u003c/code\u003e or \u003ccode\u003eLoguruIntegration\u003c/code\u003e, the auto-collection \u003cstrong\u003ewill be turned off in this release\u003c/strong\u003e. You can switch auto-collection on explicitly with:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.68.1\u003c/h2\u003e\n\u003ch3\u003e\u003ccode\u003eenable_logs\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(logs) Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7237\"\u003e#7237\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf you have \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e, our logging integrations for the standard library logging module as well as Loguru will auto-collect logs and send them to Sentry as Sentry logs by default, preserving old behavior. Turning automatic collection off for a specific integration can still be achieved using the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration option.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport sentry_sdk\nfrom sentry_sdk.integrations.logging import LoggingIntegration\nfrom sentry_sdk.integrations.loguru import LoguruIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\nenable_logs=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nLoggingIntegration(capture_sentry_logs=True),\u003cbr /\u003e\nLoguruIntegration(capture_sentry_logs=False),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003ePlease note that the \u003ccode\u003eenable_logs\u003c/code\u003e option is deprecated and will be removed in the next major release. The \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API now works regardless of it, and auto-collection can be opted into via the \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e integration-level options, which are \u003ccode\u003eFalse\u003c/code\u003e by default, unless you have \u003ccode\u003eenable_logs=True\u003c/code\u003e. We've added this compatibility layer to make the transition to a \u003ccode\u003eenable_logs\u003c/code\u003e-free world easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(django) Add \u003ccode\u003efailed_request_status_codes\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7140\"\u003e#7140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7207\"\u003e#7207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(google_genai) Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7210\"\u003e#7210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Use \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute when data collection is enabled by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7204\"\u003e#7204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langgraph,huggingface_hub) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7208\"\u003e#7208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7205\"\u003e#7205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(openai_agents) Gate \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, not inputs by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7209\"\u003e#7209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.68.0\u003c/h2\u003e\n\u003ch3\u003eImportant\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWe're making \u003ccode\u003eenable_logs\u003c/code\u003e and \u003ccode\u003eenable_metrics\u003c/code\u003e no-op with this release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/7177\"\u003e#7177\u003c/a\u003e), and they'll be dropped in the next major.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eenable_logs\u003c/code\u003e also controlled automatic logs collection from the logging and Loguru integrations. These integrations now get an integration-level \u003ccode\u003ecapture_sentry_logs\u003c/code\u003e boolean option to allow for more control over the auto-collection. These options are \u003ccode\u003eFalse\u003c/code\u003e by default, i.e., \u003cstrong\u003enothing is auto-collected without your explicit opt-in\u003c/strong\u003e.\u003c/p\u003e\n\u003ch4\u003eAction Needed\u003c/h4\u003e\n\u003cp\u003eIf you had \u003ccode\u003eenable_logs\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf you were using the \u003ccode\u003esentry_sdk.logger.X\u003c/code\u003e API, no action necessary, the API will just work.\u003c/li\u003e\n\u003cli\u003eIf you were auto-collecting logs from either \u003ccode\u003eLoggingIntegration\u003c/code\u003e or \u003ccode\u003eLoguruIntegration\u003c/code\u003e, the auto-collection \u003cstrong\u003ewill be turned off in this release\u003c/strong\u003e. You can switch auto-collection on explicitly with:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\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/getsentry/sentry-python/commit/98f7d91809e71ed5a7b827f8b4f9acfc7ac1bae0\"\u003e\u003ccode\u003e98f7d91\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/8f886ff9b784da7c45f51a0dfbe42c7838e68c42\"\u003e\u003ccode\u003e8f886ff\u003c/code\u003e\u003c/a\u003e release: 2.68.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/df4ec02a1b4bfc50f6218908fe497dd0ec566801\"\u003e\u003ccode\u003edf4ec02\u003c/code\u003e\u003c/a\u003e fix(logs): Don't stop sending auto-collected logs when \u003ccode\u003eenable_logs=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e32031816394208bce58c050ff563bfde8d7b228\"\u003e\u003ccode\u003ee320318\u003c/code\u003e\u003c/a\u003e test(pyramid): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7218\"\u003e#7218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7b8a3857122d0a9c69aca784bd730bb0dcf729f6\"\u003e\u003ccode\u003e7b8a385\u003c/code\u003e\u003c/a\u003e test(bottle): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7217\"\u003e#7217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/cbcadc9cba1295fb78a90a2823d6fbd36bce1ba3\"\u003e\u003ccode\u003ecbcadc9\u003c/code\u003e\u003c/a\u003e test(sanic): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7216\"\u003e#7216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/e42c798e0cd549b42bc748a53c7e16c2763ec427\"\u003e\u003ccode\u003ee42c798\u003c/code\u003e\u003c/a\u003e feat(tornado): Gate request body collection on data_collection option (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7215\"\u003e#7215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d05bb60e0d9ecc66b2cc8b62ba0cfc0eaa343088\"\u003e\u003ccode\u003ed05bb60\u003c/code\u003e\u003c/a\u003e test(django): Add tests for data_collection gating of request body (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7213\"\u003e#7213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/bcce67b1a6869229a0c74bcd93e4b8bcfde5cc7a\"\u003e\u003ccode\u003ebcce67b\u003c/code\u003e\u003c/a\u003e feat(wsgi): Gate request body collection on data_collection option (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/7212\"\u003e#7212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/41220c4adba83c307aabae28057db830808adb3a\"\u003e\u003ccode\u003e41220c4\u003c/code\u003e\u003c/a\u003e fix(google_genai): Gate streaming \u003ccode\u003egen_ai.response.tool_calls\u003c/code\u003e on outputs, no...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.66.1...2.68.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.52.0 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[standard]'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\u003ch2\u003eVersion 0.52.3\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\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.2...0.52.3\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.2...0.52.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\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.1...0.52.2\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eContent-Type\u003c/code\u003e and \u003ccode\u003eContent-Length\u003c/code\u003e headers from WebSocket denial responses on the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, and deliver non-UTF-8 denial bodies intact (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3041\"\u003e#3041\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.0...0.52.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.52.0...0.52.1\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[standard]'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\u003ch2\u003e0.52.3 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.2 (August 13, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ezttp\u003c/code\u003e to 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.1 (August 1, 2026)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the closing handshake on server-initiated WebSocket closes in the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e and \u003ccode\u003ewsproto\u003c/code\u003e implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing write flow control to the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, preventing data truncation on server-initiated closes with large in-flight payloads (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle connection loss while a WebSocket write is waiting on backpressure (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove duplicate \u003ccode\u003eContent-Type\u003c/code\u003e and \u003ccode\u003eContent-Length\u003c/code\u003e headers from WebSocket denial responses on the \u003ccode\u003ewebsockets-sansio\u003c/code\u003e implementation, and deliver non-UTF-8 denial bodies intact (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3041\"\u003e#3041\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\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a68da608147c5f79d962352dce11de8f6e32d972\"\u003e\u003ccode\u003ea68da60\u003c/code\u003e\u003c/a\u003e Version 0.52.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3068\"\u003e#3068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6e3bb4c5c22531c16d341f2da49f2653307f412f\"\u003e\u003ccode\u003e6e3bb4c\u003c/code\u003e\u003c/a\u003e Use zttp 0.0.24 fast receive path (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/3067\"\u003e#3067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.52.0...0.52.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.2 to 7.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.16.0\u003c/h2\u003e\n\u003ch2\u003eVersion 7.16.0 — 2026-08-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen combining files, now path separator slashes will automatically be converted to the local file system style. This makes it less necessary to define \u003ccode\u003e[paths]\u003c/code\u003e configuration to combine data across operating systems. Fixes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2266\"\u003eissue 2266\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://coverage.readthedocs.io/en/latest/api_coverage.html#coverage.Coverage.switch_context\"\u003eCoverage.switch_context()\u003c/a\u003e method now returns the previous context.\u003c/li\u003e\n\u003cli\u003eFix: previously, a \u003ccode\u003e[paths]\u003c/code\u003e pattern would be replaced everywhere in a file path when it was only meant to be replaced once, in the leading portion of the path. This is now fixed, in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2268\"\u003epull 2268\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixes to validation of options and configuration settings:\n\u003cul\u003e\n\u003cli\u003eNegative precision settings now always cause useful error messages (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2261\"\u003epull 2261\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAn invalid regex in the \u003ccode\u003e--contexts\u003c/code\u003e option (or the \u003ccode\u003e[report] contexts\u003c/code\u003e setting) reported a confusing “Couldn’t use data file …: user-defined function raised exception” error. Now it raises a proper configuration error naming the bad regex, like other regex settings do (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2262\"\u003epull 2262\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eNon-string values in TOML configuration settings now produce a helpful error message instead of a traceback. This affects list settings whose elements aren’t strings (like \u003ccode\u003eomit\u003c/code\u003e, \u003ccode\u003eexclude_lines\u003c/code\u003e, or a \u003ccode\u003e[paths]\u003c/code\u003e entry), file settings like \u003ccode\u003edata_file\u003c/code\u003e, and any wrong-typed value in the \u003ccode\u003e[paths]\u003c/code\u003e section (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2263\"\u003epull 2263\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage run\u003c/code\u003e refuses run-affecting command-line options like \u003ccode\u003e--branch\u003c/code\u003e alongside \u003ccode\u003e--concurrency=multiprocessing\u003c/code\u003e, since they can’t reach the subprocesses. The check only recognized \u003ccode\u003emultiprocessing\u003c/code\u003e as the entire option value, so \u003ccode\u003e--concurrency=multiprocessing,thread\u003c/code\u003e slipped through and failed later with “Can’t combine statement coverage data with branch data”. Each named concurrency library is now properly considered (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2270\"\u003epull 2270\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: \u003ccode\u003ecoverage annotate -d DIR\u003c/code\u003e raised an \u003ccode\u003eAssertionError\u003c/code\u003e if any measured file had an extension other than \u003ccode\u003e.py\u003c/code\u003e, such as a \u003ccode\u003e.pyw\u003c/code\u003e file on Windows. The original extension is now restored on the annotated copy (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2265\"\u003epull 2265\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.16.0\"\u003ecoverage 7.16.0\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.16.0\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.15.4\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in the HTML report, a source file name containing a double quote (legal on POSIX) wasn’t escaped where it’s dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index and prev/next links, so it could close the attribute early and inject markup. Page URLs are now escaped. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: the LCOV report wrote file names and other fields into its line-oriented records without neutralizing control characters. A measured file whose name contained a newline (legal on POSIX) could forge extra records, inflating the coverage seen by tools that read the report. Control characters in a field are now replaced. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWheels are now provided for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.4\"\u003ecoverage 7.15.4\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.4\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.15.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.3 — 2026-08-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: the sysmon core is incompatible with dynamic contexts. Previously, the combination would be prevented when read from the coverage.py configuration. But using the context API as pytest-cov does, contexts would be silently dropped. Now a warning is issued, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2234\"\u003eJisang Han\u003c/a\u003e. Closes \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2200\"\u003eissue 2200\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA performance improvement in the low-level line number bookkeeping when combining data files, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2239\"\u003eKevin Turcios\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance improvement in HTML reporting by reducing the number of times files have to be parsed, thanks to \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2240\"\u003eKevin Turcios\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.3\"\u003ecoverage 7.15.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.3\u003c/code\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/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.16.0 — 2026-08-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWhen combining files, now path separator slashes will automatically be\nconverted to the local file system style. This makes it less necessary to\ndefine \u003ccode\u003e[paths]\u003c/code\u003e configuration to combine data across operating systems.\nFixes \u003ccode\u003eissue 2266\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe :meth:\u003ccode\u003e.Coverage.switch_context\u003c/code\u003e method now returns the previous context.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: previously, a \u003ccode\u003e[paths]\u003c/code\u003e pattern would be replaced everywhere in a file\npath when it was only meant to be replaced once, in the leading portion of\nthe path. This is now fixed, in \u003ccode\u003epull 2268\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes to validation of options and configuration settings:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNegative precision settings now always cause useful error messages (\u003ccode\u003epull 2261\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAn invalid regex in the \u003ccode\u003e--contexts\u003c/code\u003e option (or the \u003ccode\u003e[report] contexts\u003c/code\u003e setting) reported a confusing \u0026quot;Couldn't use data file ...:\nuser-defined function raised exception\u0026quot; error. Now it raises a proper\nconfiguration error naming the bad regex, like other regex settings do\n(\u003ccode\u003epull 2262\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNon-string values in TOML configuration settings now produce a helpful\nerror message instead of a traceback.  This affects list settings whose\nelements aren't strings (like \u003ccode\u003eomit\u003c/code\u003e, \u003ccode\u003eexclude_lines\u003c/code\u003e, or a \u003ccode\u003e[paths]\u003c/code\u003e\nentry), file settings like \u003ccode\u003edata_file\u003c/code\u003e, and any wrong-typed value in the\n\u003ccode\u003e[paths]\u003c/code\u003e section (\u003ccode\u003epull 2263\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecoverage run\u003c/code\u003e refuses run-affecting command-line options like\n\u003ccode\u003e--branch\u003c/code\u003e alongside \u003ccode\u003e--concurrency=multiprocessing\u003c/code\u003e, since they can't\nreach the subprocesses.  The check only recognized \u003ccode\u003emultiprocessing\u003c/code\u003e as\nthe entire option value, so \u003ccode\u003e--concurrency=multiprocessing,thread\u003c/code\u003e\nslipped through and failed later with \u0026quot;Can't combine statement coverage\ndata with branch data\u0026quot;.  Each named concurrency library is now properly\nconsidered (\u003ccode\u003epull 2270\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003ecoverage annotate -d DIR\u003c/code\u003e raised an \u003ccode\u003eAssertionError\u003c/code\u003e if any\nmeasured file had an extension other than \u003ccode\u003e.py\u003c/code\u003e, such as a \u003ccode\u003e.pyw\u003c/code\u003e file on\nWindows.  The original extension is now restored on the annotated copy (\u003ccode\u003epull 2265\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2261: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2261\"\u003ecoveragepy/coveragepy#2261\u003c/a\u003e\n.. _pull 2262: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2262\"\u003ecoveragepy/coveragepy#2262\u003c/a\u003e\n.. _pull 2263: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2263\"\u003ecoveragepy/coveragepy#2263\u003c/a\u003e\n.. _pull 2265: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2265\"\u003ecoveragepy/coveragepy#2265\u003c/a\u003e\n.. _issue 2266: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2266\"\u003ecoveragepy/coveragepy#2266\u003c/a\u003e\n.. _pull 2268: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2268\"\u003ecoveragepy/coveragepy#2268\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3e9fc1653ef31089d02eb7618b9d9ac9414378fc\"\u003e\u003ccode\u003e3e9fc16\u003c/code\u003e\u003c/a\u003e docs: prep for 7.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/38be8d13afee6b6525492fc375c739cdfb675e9b\"\u003e\u003ccode\u003e38be8d1\u003c/code\u003e\u003c/a\u003e build: control check-manifest explicitly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8eb1266ead5c6d356d3437637a509ff86b566253\"\u003e\u003ccode\u003e8eb1266\u003c/code\u003e\u003c/a\u003e docs(build): no longer commit sample_html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1a8b3fa57d56bb70bad62c93d224c18a0fbaae6f\"\u003e\u003ccode\u003e1a8b3fa\u003c/code\u003e\u003c/a\u003e docs: remove sample_html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/aeaa79b812d1bc637ebb5582ab12c076e192c87e\"\u003e\u003ccode\u003eaeaa79b\u003c/code\u003e\u003c/a\u003e docs: linklint is now sphinx-linklint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5eaf3f6d38f58746bc69e87e64c0b0277a9077d\"\u003e\u003ccode\u003ed5eaf3f\u003c/code\u003e\u003c/a\u003e test: a branchless way to re-add extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57e52fd431cecc1ca03de2c5b1288e0b330c2ef4\"\u003e\u003ccode\u003e57e52fd\u003c/code\u003e\u003c/a\u003e docs: adjust CHANGES for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b9d304d77f7ce3d55df3a46339dbc56d1f49df58\"\u003e\u003ccode\u003eb9d304d\u003c/code\u003e\u003c/a\u003e fix: check for multiprocessing in a --concurrency list (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2270\"\u003e#2270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6ef9284afbc7d1f392821864b64ddbda0051fc5\"\u003e\u003ccode\u003ea6ef928\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/070461fcfde0437b5b778c2c2a72e433a0a391aa\"\u003e\u003ccode\u003e070461f\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2271\"\u003e#2271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.15.2...7.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize TaskResult in the Tasks panel to accommodate the storage mechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel’s kwargs column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize the TaskResult class for Tasks panel. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2444\"\u003edjango-commons/django-debug-toolbar#2444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via Django’s built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On older versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django’s boolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that can resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container network.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without parameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not find the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked before the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the Django version check in the SQL panel by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2403\"\u003edjango-commons/django-debug-toolbar#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix some small issues in docs/installation.rst by \u003ca href=\"https://github.com/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilence the MiddlewareMixin deprecation warning explicitly by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2416\"\u003edjango-commons/django-debug-toolbar#2416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tasks panel showing tasks queued during the request by \u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests by \u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2435\"\u003edjango-commons/django-debug-toolbar#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_toolbar_with_docker on runtimes with unrelated host address by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove selenium tests reliability in CI by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2438\"\u003edjango-commons/django-debug-toolbar#2438\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/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1 (2026-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize \u003ccode\u003eTaskResult\u003c/code\u003e in the Tasks panel to accommodate the storage\nmechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel's \u003ccode\u003ekwargs\u003c/code\u003e column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-08-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via\nDjango's built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On\nolder versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django's\nboolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that\ncan resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container\nnetwork.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without\nparameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not\nfind the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked\nbefore the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003cli\u003eImproved cache hit/miss reporting in the Cache panel for \u003ccode\u003ecache.get()\u003c/code\u003e\ncalls with a supplied default value, while documenting the remaining\nambiguity when a cached value equals the supplied default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f307de14d1a533273b6de7bd39579b043eb54a99\"\u003e\u003ccode\u003ef307de1\u003c/code\u003e\u003c/a\u003e Version 7.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/73951a4c517bafa5369228f2fca8306510f1cbf1\"\u003e\u003ccode\u003e73951a4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2439\"\u003e#2439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/678b687e0a30c2657dc21b1d859d1141098997a0\"\u003e\u003ccode\u003e678b687\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2442\"\u003e#2442\u003c/a\u003e)...\n\n_Description has been truncated_","html_url":"https://github.com/tchongwangbakayoko619-star/Plateforme-de-gestion-d-v-nements-universitaires/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchongwangbakayoko619-star%2FPlateforme-de-gestion-d-v-nements-universitaires/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-02T10:31:41.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5322769191","node_id":"PR_kwDOI7xefs8AAAABB4aMlQ","number":54938,"state":"closed","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["rocm","ci/build","cpu","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-03T09:49:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-02T10:31:41.000Z","updated_at":"2026-09-03T09:49:24.000Z","time_to_close":83861,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere","old_version":"7.0.8","new_version":"7.1.0","repository_url":"https://github.com/cohere-ai/cohere-python"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.24.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.167.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.52.1","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.4","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"triton","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.6","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.28.0` | `1.29.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.83` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.83` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere](https://github.com/cohere-ai/cohere-python) | `7.0.8` | `7.1.0` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.24.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.167.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.52.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.7.1` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.6` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.28.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.29.0] Fix Xet downloads rate limits, bucket visibility updates, and security fixes\u003c/h2\u003e\n\u003ch2\u003e⚡ Xet downloads no longer make one API call per file\u003c/h2\u003e\n\u003cp\u003eSince v1.19.0, downloading a repository with \u003ccode\u003ehf_xet\u003c/code\u003e eagerly requested a xet read token for every single file, because each download group was built without cached connection info. On repos with many files this quickly added up — a 77k-file repo made ~1,500 Hub API calls per minute — and eventually hit the rate limiter, leaving \u003ccode\u003esnapshot_download\u003c/code\u003e appearing stalled for minutes before failing with a \u003ccode\u003e429 Too Many Requests\u003c/code\u003e. This release restores the Python-side connection info cache so the endpoint and token are reused across download groups, skipping the eager per-file token request entirely. Large downloads are both faster and far less likely to be rate-limited.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Xet] Cache connection info to avoid one token request per file by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🪣 Change bucket visibility after creation\u003c/h2\u003e\n\u003cp\u003eBucket visibility used to be a create-time-only setting: once a bucket existed, there was no way to flip it between private and public. You can now update it with the new \u003ccode\u003eHfApi.update_bucket_settings()\u003c/code\u003e method (also exported as \u003ccode\u003eupdate_bucket_settings\u003c/code\u003e) or from the CLI with \u003ccode\u003ehf buckets settings\u003c/code\u003e, which takes either \u003ccode\u003e--private\u003c/code\u003e or \u003ccode\u003e--public\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"py\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import update_bucket_settings\r\n\u003ch1\u003eMake a bucket private\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=True)\u003c/p\u003e\n\u003ch1\u003eMake it public again\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; update_bucket_settings(\u0026quot;username/my-bucket\u0026quot;, private=False)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Make a bucket private\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --private\r\n✓ Bucket settings updated\r\n  bucket_id: username/my-bucket\r\n  private: True\r\n\r\n# Make it public again\r\n\u0026gt;\u0026gt;\u0026gt; hf buckets settings username/my-bucket --public\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/buckets\"\u003eBuckets guide\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Add support for updating bucket visibility by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4715\"\u003e#4715\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔒 Security fixes\u003c/h2\u003e\n\u003cp\u003eTwo security-relevant fixes land in this release. First, the path-traversal guard introduced earlier for CVE-2026-15717 is now extended to \u003ccode\u003ehf buckets sync\u003c/code\u003e / \u003ccode\u003esync_bucket()\u003c/code\u003e: when downloading from a bucket, server-supplied file keys were joined straight onto the local destination without validation, so a malicious or compromised bucket could return anchored or traversing keys (\u003ccode\u003e/etc/cron.d/evil\u003c/code\u003e, \u003ccode\u003e../../../../etc/passwd\u003c/code\u003e, Windows drive-absolute or UNC paths) that escape the chosen directory and write arbitrary files. Remote paths are now validated the same way as in the original fix. Second, \u003ccode\u003eload_state_dict_from_file\u003c/code\u003e could fall back to pickle deserialization for a shard named exactly \u003ccode\u003e.safetensors\u003c/code\u003e: \u003ccode\u003ePath.suffix\u003c/code\u003e returns an empty string for extension-only filenames, so a file that passed sharded-checkpoint validation (which uses \u003ccode\u003estr.endswith\u003c/code\u003e) was still routed to \u003ccode\u003etorch.load(weights_only=False)\u003c/code\u003e. A shared \u003ccode\u003e_is_safetensors()\u003c/code\u003e helper now guarantees both code paths use the same matching semantics, so an index-declared \u0026quot;safetensors\u0026quot; checkpoint can never be loaded with pickle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Buckets] Validate remote paths in bucket sync to prevent path traversal by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extension-confusion fallback to pickle in load_state_dict_from_file (add \u003ccode\u003e_is_safetensors\u003c/code\u003e) by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4737\"\u003e#4737\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] Send LoRA weights for fal-ai text-to-video by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4706\"\u003e#4706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/4237d95c603db491cb1070898c74c97e4d7c2582\"\u003e\u003ccode\u003e4237d95\u003c/code\u003e\u003c/a\u003e Release: v1.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/dd44abc045c7cb774436f0efed5b640a84c74cda\"\u003e\u003ccode\u003edd44abc\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/38d29a81f185cb29e0fdc972503c975f0e7b713d\"\u003e\u003ccode\u003e38d29a8\u003c/code\u003e\u003c/a\u003e [Release] Refresh OpenCode model cache before validating RELEASE_NOTES_MODEL ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b1bf950c9861148cd5a866b02e2dbf1f5ea4aaf3\"\u003e\u003ccode\u003eb1bf950\u003c/code\u003e\u003c/a\u003e Release: v1.29.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e62777baa0cb418a2618372961fd7346c346dc6\"\u003e\u003ccode\u003e2e62777\u003c/code\u003e\u003c/a\u003e [CI] Auto-close community PRs without a maintainer-scoped issue (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4695\"\u003e#4695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c5eb13cdc808aae4251054081271cdfd415fcce7\"\u003e\u003ccode\u003ec5eb13c\u003c/code\u003e\u003c/a\u003e [CLI] Installer: point at shadowed newer Python on macOS (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4758\"\u003e#4758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/585c075de9c432bb648033f9c5d188847d5174af\"\u003e\u003ccode\u003e585c075\u003c/code\u003e\u003c/a\u003e [Buckets] Validate remote paths in bucket sync to prevent path traversal (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4731\"\u003e#4731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4dcfe7e9588248deefd977a2ab922516334bc2dd\"\u003e\u003ccode\u003e4dcfe7e\u003c/code\u003e\u003c/a\u003e [CLI] Fix argument help rendering with click 8.5 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4759\"\u003e#4759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2c60641c98afa344892600e6ba76e010959ed637\"\u003e\u003ccode\u003e2c60641\u003c/code\u003e\u003c/a\u003e [Xet] Cache connection info to avoid one token request per file (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4732\"\u003e#4732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c6be77fb44d91f474da963e5ad6fce4801811027\"\u003e\u003ccode\u003ec6be77f\u003c/code\u003e\u003c/a\u003e Hint at \u003ccode\u003estream=True\u003c/code\u003e when a non-streaming inference call fails with 504 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.28.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.git...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/54938","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/54938","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/54938/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-09-01T18:17:39.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5315274331","node_id":"PR_kwDOS1nMV88AAAABByeeEQ","number":26,"state":"open","title":"Bump the minor-update group across 1 directory with 172 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-01T18:17:39.000Z","updated_at":"2026-09-01T18:17:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":172,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.1"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.3.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.2","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.83","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.16.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.76.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.4","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.1.1"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"nvidia-cutlass-dsl","old_version":"4.4.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 172 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.5` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.28.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.1` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.1` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.5` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.3.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.2` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.83` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.83` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.16.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.76.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.1.1` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.8.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.8.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.3` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.4.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.5` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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.128.0 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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.128.0...0.141.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiohttp` from 3.13.3 to 3.14.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst\"\u003eaiohttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.14.3 (2026-07-22)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the client dropping only the first \u003ccode\u003eAuthorization\u003c/code\u003e, \u003ccode\u003eCookie\u003c/code\u003e and\n\u003ccode\u003eProxy-Authorization\u003c/code\u003e header when a redirect crossed an origin -- by :user:\u003ccode\u003earshsmith1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13180\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed error message construction in the C HTTP parser -- by :user:\u003ccode\u003ebdraco\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e13222\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch1\u003e3.14.2 (2026-07-20)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed :py:attr:\u003ccode\u003e~aiohttp.web.StreamResponse.last_modified\u003c/code\u003e rounding a\n:class:\u003ccode\u003edatetime.datetime\u003c/code\u003e with a fractional second down.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5303\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed resolving \u003ccode\u003elocalhost\u003c/code\u003e on Windows to fall back without \u003ccode\u003eAI_ADDRCONFIG\u003c/code\u003e\nwhen the first lookup fails, so \u003ccode\u003elocalhost\u003c/code\u003e still works without an active\nnetwork.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRelated issues and pull requests on GitHub:\u003c/em\u003e\n:issue:\u003ccode\u003e5357\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/5e392ce0456f5235a4ee6ad46f0e806df2f15873\"\u003e\u003ccode\u003e5e392ce\u003c/code\u003e\u003c/a\u003e Release v3.14.3 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13225\"\u003e#13225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d\"\u003e\u003ccode\u003e49f65d5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13222\"\u003e#13222\u003c/a\u003e/f4866933 backport][3.14] Build C parser error message from bounded...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/240099e5216a01b32919dcd8dd5c6c0b1bf83671\"\u003e\u003ccode\u003e240099e\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13180\"\u003e#13180\u003c/a\u003e/ee53d655 backport][3.14] drop every copy of credential headers on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/d93f30a302f8b930074fe14a2be7b2088ba28111\"\u003e\u003ccode\u003ed93f30a\u003c/code\u003e\u003c/a\u003e Bump version (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13202\"\u003e#13202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/c1b9212ad3d93c24b5fc66ad0849597166bc816e\"\u003e\u003ccode\u003ec1b9212\u003c/code\u003e\u003c/a\u003e Release v3.14.2 (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13201\"\u003e#13201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/380d4b55e8df48dfd62f1addfb530426f6bc4106\"\u003e\u003ccode\u003e380d4b5\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13054\"\u003e#13054\u003c/a\u003e/ed8b040c backport][3.14] escape backslashes in digest auth quoted-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/e1e1bee363dfba04a9a75c8801717da2ed5bdcb9\"\u003e\u003ccode\u003ee1e1bee\u003c/code\u003e\u003c/a\u003e Make llhttp method array size dynamic (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13174\"\u003e#13174\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13196\"\u003e#13196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/aa4cf29b6a5ad6f4d21fa1dd3f69193dc2f5d505\"\u003e\u003ccode\u003eaa4cf29\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13170\"\u003e#13170\u003c/a\u003e/2b906869 backport][3.14] Fix StreamResponse.last_modified rounding...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/71b57b40d85a0723c92b0a5a37ebdf518210d2ea\"\u003e\u003ccode\u003e71b57b4\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13172\"\u003e#13172\u003c/a\u003e/a57747ed backport][3.14] Fix C parser folding fragment into query_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiohttp/commit/64a03fb620b623e5a5a1b7103c07ae3e536a0d40\"\u003e\u003ccode\u003e64a03fb\u003c/code\u003e\u003c/a\u003e [PR \u003ca href=\"https://redirect.github.com/aio-libs/aiohttp/issues/13169\"\u003e#13169\u003c/a\u003e/1adc0cd7 backport][3.14] Upgrade http:// to https:// in README.rst...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiohttp/compare/v3.13.3...v3.14.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 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\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/chenli2020/AiInfraProject/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenli2020%2FAiInfraProject/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-31T11:09:57.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5299457150","node_id":"PR_kwDORjYFXs8AAAABBlzJhA","number":429,"state":"closed","title":"Bump the minor-update group across 1 directory with 136 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-01T21:59:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T11:09:57.000Z","updated_at":"2026-09-01T21:59:28.000Z","time_to_close":125369,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":136,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.1","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tpu-inference","old_version":"0.27.0","new_version":"0.28.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.5.0","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.5","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.82","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.82","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.8.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.29.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.1","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.15.1.9","new_version":"9.25.0.15"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.3","repository_url":"https://github.com/getsentry/responses"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"statsmodels","old_version":"0.14.4","new_version":"0.15.0","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"torchaudio","old_version":"2.10.0","new_version":"2.11.0+cpu"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.1","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.2","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 136 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.1` | `5.16.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.27.0` | `0.28.0` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.5` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.82` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.82` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.8.0` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.29.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.1` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.2` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.15.1.9` | `9.25.0.15` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.3` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.4` | `0.15.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| torchaudio | `2.10.0` | `2.11.0+cpu` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.1 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.1...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003cp\u003eNo changes since 4.16.0rc2.\u003c/p\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc2\u003c/h2\u003e\n\u003cp\u003eChanges since 4.16.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003c/ul\u003e\n\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/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.16.0 (July 2, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.16.0rc2.\u003c/p\u003e\n\u003ch1\u003eRelease 4.16.0rc2 (June 25, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on\nPython 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.16.0rc1 (June 24, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable.\nBackport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting\nkeys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols\nas bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that\ncalling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or\n\u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different\nresult in some situations depending on whether or not a profiling function had been\nset using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations.\nPatch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving\nan \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on\nPython 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the\n\u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since\n\u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters\nto \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e\nparameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the\nname that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15.\n\u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards\ncompatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument\nto the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa\"\u003e\u003ccode\u003ef29cd28\u003c/code\u003e\u003c/a\u003e Prepare relase 4.16.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b\"\u003e\u003ccode\u003e4317461\u003c/code\u003e\u003c/a\u003e Bump version to 4.16.0rc2.dev (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/772\"\u003e#772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9\"\u003e\u003ccode\u003e4f71098\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc2 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/771\"\u003e#771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2\"\u003e\u003ccode\u003e37ed08a\u003c/code\u003e\u003c/a\u003e Remove use of \u003ccode\u003easyncio.coroutines.iscoroutinefunction()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601\"\u003e\u003ccode\u003e8dcc559\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eTypedDict\u003c/code\u003e documentation (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f\"\u003e\u003ccode\u003e224f8d5\u003c/code\u003e\u003c/a\u003e Post-release followups for 3.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f\"\u003e\u003ccode\u003e777de3e\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c\"\u003e\u003ccode\u003e890be90\u003c/code\u003e\u003c/a\u003e Type variable tuple variance (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d\"\u003e\u003ccode\u003e0e05458\u003c/code\u003e\u003c/a\u003e Pin SQLAlchemy third-party tests to pytest==9.0.3 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229\"\u003e\u003ccode\u003ed277746\u003c/code\u003e\u003c/a\u003e docs: add version compatibility table (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.15.0...4.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tpu-inference` from 0.27.0 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/9eca2a5a7edae158456cbae2b28ea77ea7c05da9\"\u003e\u003ccode\u003e9eca2a5\u003c/code\u003e\u003c/a\u003e update docs for v0.28.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/9101adb6d3f95c223d6be9930c96263179302801\"\u003e\u003ccode\u003e9101adb\u003c/code\u003e\u003c/a\u003e [releases/v0.28.0] Cherry-pick \u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3446\"\u003e#3446\u003c/a\u003e: mark Qwen2.5-VL-7B benchmarks unverifie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/dacd27d15d5063eac1a7ce7ee427c945ccef4c3a\"\u003e\u003ccode\u003edacd27d\u003c/code\u003e\u003c/a\u003e Update verified commit hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/b8692ff01fa191343836996c27a39dc95f008b88\"\u003e\u003ccode\u003eb8692ff\u003c/code\u003e\u003c/a\u003e [skip ci] Update nightly support matrices for vllm (v6e/v7x)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/3582484df2707e40b3bc21af3ae83c8eb41d1498\"\u003e\u003ccode\u003e3582484\u003c/code\u003e\u003c/a\u003e [tpu-inference] Add block-diffusion strategy configuration (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3242\"\u003e#3242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/7482cf9b3635455011c469a9fe3b1beeca8d27b3\"\u003e\u003ccode\u003e7482cf9\u003c/code\u003e\u003c/a\u003e Update verified commit hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/0fbf23af42c63ae3fdf9a5b6567a42297e40b751\"\u003e\u003ccode\u003e0fbf23a\u003c/code\u003e\u003c/a\u003e [skip ci] Update nightly support matrices (v6e/v7x)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/d253b79e6f7f38be99481274704784c2b2eaa293\"\u003e\u003ccode\u003ed253b79\u003c/code\u003e\u003c/a\u003e Use tokamax release version to unblock TPU-inference release. (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/57987c2298fb44e75a3919d5c4cf31c9e5dd9a7e\"\u003e\u003ccode\u003e57987c2\u003c/code\u003e\u003c/a\u003e [Fix] Reduce shared-expert output over in-group TP under attention DP (\u003ca href=\"https://redirect.github.com/vllm-project/tpu-inference/issues/3435\"\u003e#3435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vllm-project/tpu-inference/commit/ee1e17a124488cd5ec27f4ded8b757e5507fedef\"\u003e\u003ccode\u003eee1e17a\u003c/code\u003e\u003c/a\u003e [gemma4] Fix torchax-path E2B/E4B accuracy: inline PLE + skip KV-cache writes...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/vllm-project/tpu-inference/compare/v0.27.0...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `annotated-types` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/annotated-types/annotated-types/releases\"\u003eannotated-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename DocInfo to Doc by \u003ca href=\"https://github.com/zen-xu\"\u003e\u003ccode\u003e@​zen-xu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/80\"\u003eannotated-types/annotated-types#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/annotated-types/annotated-types/pull/83\"\u003eannotated-types/annotated-types#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring of \u003ccode\u003eTimezone\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/annotated-types/annotated-types/...\n\n_Description has been truncated_","html_url":"https://github.com/1CatAI/1Cat-vLLM/pull/429","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1CatAI%2F1Cat-vLLM/issues/429","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/429/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-29T18:27:52.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5288172150","node_id":"PR_kwDOUHnnfc8AAAABBdTuOQ","number":10,"state":"closed","title":"Bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-05T18:29:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-29T18:27:52.000Z","updated_at":"2026-09-05T18:29:36.000Z","time_to_close":604902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.15.0","new_version":"5.16.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","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":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.44.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.2"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.15.0` | `5.16.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.44.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.2` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.15.0 to 5.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.16.1\u003c/h1\u003e\n\u003cp\u003eThis is a special release as we include GLM! (and a few small fixes)\u003c/p\u003e\n\u003ch1\u003eGLM-5.3-Flash\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGLM-5.3-Flash, the first \u003cstrong\u003enatively multimodal model\u003c/strong\u003e in the GLM-5 series. With 320B total parameters and just 18B active parameters, it outperforms GLM-5.2 across benchmarks and real-world workloads at one-tenth the price, while approaching Claude Opus 4.8 on coding and agentic benchmarks.\u003c/p\u003e\n\u003cp\u003eGLM-5.3-Flash starts from a newly trained base model, with its architecture and training recipe redesigned around capability and efficiency. For the first time in the GLM series, we introduce a hybrid architecture combining sparse and linear attention, sharply reducing long-context serving costs while preserving precise long-context capabilities. The model also adopts Manifold-Constrained Hyper-Connections (mHC) to further improve scaling efficiency. Together with our latest \u003cstrong\u003e30T-token\u003c/strong\u003e multimodal pre-training corpus, these changes enable GLM-5.3-Flash to deliver more intelligence with less compute.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/glm5_next\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e) by \u003ca href=\"https://github.com/Dovis01\"\u003e\u003ccode\u003e@​Dovis01\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48342\"\u003e#48342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall patch fixes\u003c/h2\u003e\n\u003cp\u003eMainly BC behavior for TP and pinning a hf kernel for security reasons :hugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e) by \u003ca href=\"https://github.com/Rocketknight1\"\u003e\u003ccode\u003e@​Rocketknight1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\"\u003ehttps://github.com/huggingface/transformers/compare/v5.16.0...v5.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease: v5.16.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.16.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eQwen4-Exp\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eQwen4-Exp builds on Qwen3.5's hybrid text and multimodal architecture with three key components: GatedResidual (GR), Qwen Sparse Attention (QSA), and Per-Layer Embedding (PLE).\u003c/p\u003e\n\u003cp\u003eGR is a Qwen-developed residual architecture that combines Hyper-Connection with GatedNorm. It mixes multiple residual streams with fine-grained elementwise gating before each attention and Mixture-of-Experts (MoE) block, then controls how much of the block output is injected back into each stream.\u003c/p\u003e\n\u003cp\u003eQSA uses multiple query heads to score compressed key blocks, selects the most relevant contiguous token blocks, and keeps the incomplete trailing block uncompressed. This block-level selection reduces indexing overhead and improves memory locality for long sequences. Combined with Gated DeltaNet, QSA makes Qwen4-Exp the first hybrid architecture to integrate linear and sparse attention, substantially improving inference efficiency for long-context workloads.\u003c/p\u003e\n\u003cp\u003ePLE enriches selected decoder layers with layer-specific lexical features derived from hashed token n-grams and a dilated depthwise convolution.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/qwen4_exp\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/48337\"\u003e#48337\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeech5\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93c8b7b485963a10800c91f55304db6be211c2bd\"\u003e\u003ccode\u003e93c8b7b\u003c/code\u003e\u003c/a\u003e v5.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cdaca8380b718fcc9cec579feaa3833bd264920c\"\u003e\u003ccode\u003ecdaca83\u003c/code\u003e\u003c/a\u003e [Glm 5.3 Flash] GLM 5.3 Flash Support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48342\"\u003e#48342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/b366ad34f84cb6f03a553335b3914a221e4d0323\"\u003e\u003ccode\u003eb366ad3\u003c/code\u003e\u003c/a\u003e Fix kernel commit and repo paths for ESMFold2 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48186\"\u003e#48186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f2f43275cf494d20cc830983646082d2c1e06702\"\u003e\u003ccode\u003ef2f4327\u003c/code\u003e\u003c/a\u003e Restore BC for the tensor-parallel API (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48300\"\u003e#48300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93d1bcfbd2af5798e2f66bf7955e31a537902b64\"\u003e\u003ccode\u003e93d1bcf\u003c/code\u003e\u003c/a\u003e release: v5.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/276c5c47d31bf2a600051a93177242d7070511f1\"\u003e\u003ccode\u003e276c5c4\u003c/code\u003e\u003c/a\u003e Add Qwen4Exp model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48337\"\u003e#48337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d3cdaec47d0b8c9c1eaa0cd89c2c3303a977a02d\"\u003e\u003ccode\u003ed3cdaec\u003c/code\u003e\u003c/a\u003e Fix video-llama modular conversion (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48336\"\u003e#48336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/949e301b5e7ec03043be0b5e537700aec2ee2f87\"\u003e\u003ccode\u003e949e301\u003c/code\u003e\u003c/a\u003e CI: gate the hunyuan-moe slow test  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48330\"\u003e#48330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5fcf605fda6c7c3982f62807f2eda210aa37e9e1\"\u003e\u003ccode\u003e5fcf605\u003c/code\u003e\u003c/a\u003e Add a regression test for force_accelerate_hooks signature preservation  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48\"\u003e#48\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/27e7f6c81a67bae6f706098083cbe9c64aba8def\"\u003e\u003ccode\u003e27e7f6c\u003c/code\u003e\u003c/a\u003e Add an opt-in per-frame pixel cap (cap_pixels_per_frame) to the Qwen3-VL vide...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.15.0...v5.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\u003ccod...\n\n_Description has been truncated_","html_url":"https://github.com/POWEHI2023/vLLM-Learning/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/POWEHI2023%2FvLLM-Learning/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-29T01:02:20.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5283591868","node_id":"PR_kwDOUHlKes8AAAABBZ10PA","number":5,"state":"closed","title":"build(deps): bump the minor-update group across 1 directory with 179 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-05T05:19:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-29T01:02:20.000Z","updated_at":"2026-09-05T05:19:14.000Z","time_to_close":620212,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-update","update_count":179,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.14.1","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.1","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 179 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.14.1` | `5.15.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.1` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.14.1 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.14.1...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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/1...\n\n_Description has been truncated_","html_url":"https://github.com/Entrpi/vllm-glm-5.3-flash-spark/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Entrpi%2Fvllm-glm-5.3-flash-spark/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-28T22:31:06.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5282809094","node_id":"PR_kwDOUGxIMM8AAAABBZOO8g","number":10,"state":"closed","title":"Bump the minor-update group across 1 directory with 178 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T22:10:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T22:31:06.000Z","updated_at":"2026-09-04T22:10:56.000Z","time_to_close":603589,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":178,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.80","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.11.1","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.57.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.7.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.4","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"b12x","old_version":"1.2.4","new_version":"1.3.0"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 178 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.80` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.80` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.11.1` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.57.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.7.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.2` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.4` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| b12x | `1.2.4` | `1.3.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlet...\n\n_Description has been truncated_","html_url":"https://github.com/codesque16/vllm28PP_patch/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codesque16%2Fvllm28PP_patch/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-28T19:22:11.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5281543405","node_id":"PR_kwDOMOIerM8AAAABBYN6Lg","number":102,"state":"closed","title":"Bump the minor-update group across 1 directory with 182 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T19:04:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T19:22:11.000Z","updated_at":"2026-09-04T19:04:42.000Z","time_to_close":603749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":182,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.13.1","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.25.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.1","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hf-xet","old_version":"1.5.1","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.22.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 182 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.13.1` | `5.15.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.25.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.5.1` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.22.0` | `1.28.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.0` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.1.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.13.1 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.13.1...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e information via response extensions \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3130\"\u003e#3130\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte ranges in \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003e#3389\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003e#3430\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003e#3418\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003e#3421\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003e#3419\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003e#3420\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e to 128 KiB in \u003ccode\u003eGZipResponder\u003c/code\u003e, keeping it usable without the new keyword argument \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3415\"\u003e#3415\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0 (August 5, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOffload large GZip compression to a worker thread, keeping the event loop respon...\n\n_Description has been truncated_","html_url":"https://github.com/gonka-ai/vllm/pull/102","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gonka-ai%2Fvllm/issues/102","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/102/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-28T19:11:45.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5281464651","node_id":"PR_kwDOUGq5rs8AAAABBYJ2UA","number":10,"state":"closed","title":"Bump the minor-update group with 177 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T18:52:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T19:11:45.000Z","updated_at":"2026-09-04T18:52:09.000Z","time_to_close":603622,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":177,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"huggingface-hub","old_version":"1.27.0","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.136.3","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"1.3.1","new_version":"1.6.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"pyzmq","old_version":"27.1.0","new_version":"27.2.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"python-json-logger","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pybase64","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/mayeut/pybase64"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions-ai","old_version":"0.4.13","new_version":"0.5.1"},{"name":"tpu-inference","old_version":"0.26.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.11","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cohere-melody","old_version":"0.9.0","new_version":"0.13.4","repository_url":"https://github.com/cohere-ai/melody"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.3.0","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastapi-cloud-cli","old_version":"0.21.0","new_version":"0.23.0","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"fastar","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/DoctorJohn/fastar"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonschema-rs","old_version":"0.46.5","new_version":"0.51.0","repository_url":"https://github.com/Stranger6667/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llguidance","old_version":"1.7.6","new_version":"1.8.0","repository_url":"https://github.com/microsoft/llguidance"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.2","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.1.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.20.0.48","new_version":"9.24.0.43"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.1","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.29.7","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pydantic-settings","old_version":"2.14.2","new_version":"2.15.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"rignore","old_version":"0.7.6","new_version":"0.8.1"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"schemathesis","old_version":"4.21.6","new_version":"4.25.2","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.63.0","new_version":"2.68.1","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"torchcodec","old_version":"0.14.0+cu130","new_version":"0.16.0","repository_url":"https://github.com/pytorch/torchcodec"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.26.8","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"pynvvideocodec","old_version":"2.0.4","new_version":"2.2.1"},{"name":"nvidia-cutlass-dsl","old_version":"4.6.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.8","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 177 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.27.0` | `1.28.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1` |\n| [starlette](https://github.com/Kludex/starlette) | `1.3.1` | `1.6.0` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.2` | `8.1.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |\n| [pybase64](https://github.com/mayeut/pybase64) | `1.4.3` | `1.5.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| opentelemetry-semantic-conventions-ai | `0.4.13` | `0.5.1` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.26.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.19.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.11` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [cohere-melody](https://github.com/cohere-ai/melody) | `0.9.0` | `0.13.4` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.3.0` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.21.0` | `0.23.0` |\n| [fastar](https://github.com/DoctorJohn/fastar) | `0.11.0` | `0.12.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonschema-rs](https://github.com/Stranger6667/jsonschema) | `0.46.5` | `0.51.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llguidance](https://github.com/microsoft/llguidance) | `1.7.6` | `1.8.0` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.1.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.20.0.48` | `9.24.0.43` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.1` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.29.7` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.2` | `2.15.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| rignore | `0.7.6` | `0.8.1` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `4.21.6` | `4.25.2` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.63.0` | `2.68.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [torchcodec](https://github.com/pytorch/torchcodec) | `0.14.0+cu130` | `0.16.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.8` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| pynvvideocodec | `2.0.4` | `2.2.1` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.6.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.8` | `0.2.5` |\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.27.0 to 1.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.28.0] Hardware discovery and managed engine images for Inference Endpoints and more\u003c/h2\u003e\n\u003ch2\u003e🔎 Discover deployable hardware with \u003ccode\u003ehf endpoints hardware\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eDeploying an Inference Endpoint requires five hardware flags (\u003ccode\u003e--vendor\u003c/code\u003e, \u003ccode\u003e--region\u003c/code\u003e, \u003ccode\u003e--accelerator\u003c/code\u003e, \u003ccode\u003e--instance-type\u003c/code\u003e, \u003ccode\u003e--instance-size\u003c/code\u003e) whose valid values depend on each other, and until now there was no way to learn them from the CLI. The new \u003ccode\u003ehf endpoints hardware\u003c/code\u003e command lists the valid combinations along with the price per replica per hour and your namespace's accelerator quota, filtered by default to the hardware you can deploy on right now. The same data is available in the SDK via \u003ccode\u003elist_inference_endpoints_hardware()\u003c/code\u003e, which flattens the API response into \u003ccode\u003eInferenceEndpointHardware\u003c/code\u003e objects you can filter programmatically.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; hf endpoints hardware --vendor aws --region eu-west-1\r\nVENDOR REGION    ACCELERATOR INSTANCE_TYPE INSTANCE_SIZE MEMORY_GB GPU_MEMORY_GB PRICE_PER_HOUR QUOTA STATUS\r\n------ --------- ----------- ------------- ------------- --------- ------------- -------------- ----- ---------\r\naws    eu-west-1 cpu         intel-spr     x1                  2.0                        0.033 0/60  available\r\naws    eu-west-1 cpu         intel-spr     x2                  4.0                        0.067 0/60  available\r\naws    eu-west-1 gpu         nvidia-a10g   x1                 30.0            24            1.0 0/16  available\r\naws    eu-west-1 gpu         nvidia-t4     x1                 15.0            16            0.5 1/30  available\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4672\"\u003e#4672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 Managed engine images and multi-accelerator parallelism for Inference Endpoints\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ecustom_image\u003c/code\u003e now accepts the engine-specific container types supported by the API: key the dictionary with the engine name (\u003ccode\u003evLLM\u003c/code\u003e, \u003ccode\u003esGLang\u003c/code\u003e, \u003ccode\u003etgi\u003c/code\u003e, \u003ccode\u003etei\u003c/code\u003e, \u003ccode\u003ellamacpp\u003c/code\u003e, \u003ccode\u003ehfServe\u003c/code\u003e, ...) instead of leaving it flat, and each engine takes the usual container fields plus its own tuning options. Any dict without a top-level \u003ccode\u003eurl\u003c/code\u003e is forwarded to the API untouched, so engines added to the API later will work without upgrading \u003ccode\u003ehuggingface_hub\u003c/code\u003e, and \u003ccode\u003eupdate_inference_endpoint\u003c/code\u003e now handles the same payload shapes as \u003ccode\u003ecreate_inference_endpoint\u003c/code\u003e. On the CLI, \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003ehf endpoints update\u003c/code\u003e gain \u003ccode\u003e--engine\u003c/code\u003e, \u003ccode\u003e--tensor-parallel-size\u003c/code\u003e and \u003ccode\u003e--data-parallel-size\u003c/code\u003e, and \u003ccode\u003eupdate\u003c/code\u003e also accepts \u003ccode\u003e--custom-image\u003c/code\u003e, \u003ccode\u003e--health-route\u003c/code\u003e and \u003ccode\u003e--port\u003c/code\u003e. This matters because vLLM and SGLang default to a single accelerator while an endpoint is allocated every accelerator of its instance — the API now rejects that misconfiguration, and these flags are how you set things right.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e$ hf endpoints deploy gpt-oss-120b-vllm --repo openai/gpt-oss-120b --framework custom \\\r\n    --accelerator gpu --instance-size x8 --instance-type nvidia-h200 --region us-east-1 --vendor aws \\\r\n    --engine vllm --custom-image vllm/vllm-openai:v0.23.0 --tensor-parallel-size 8\r\n\u003ch1\u003eRetune a running endpoint\u003c/h1\u003e\n\u003cp\u003e$ hf endpoints update gpt-oss-120b-vllm --tensor-parallel-size 4 --data-parallel-size 2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e💔 \u003cstrong\u003eBreaking change:\u003c/strong\u003e \u003ccode\u003ehuggingface_hub.constants.INFERENCE_ENDPOINT_IMAGE_KEYS\u003c/code\u003e is removed. It was never exported at the package root nor documented, but code reading it directly will now get an \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Endpoints] Support managed engine images in \u003ccode\u003ecustom_image\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4671\"\u003e#4671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] Add --tensor-parallel-size / --data-parallel-size to \u003ccode\u003ehf endpoints deploy\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e by \u003ca href=\"https://github.com/moon-bot-app\"\u003e\u003ccode\u003e@​moon-bot-app\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4661\"\u003e#4661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🤖 Inference\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add text-to-speech support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4559\"\u003e#4559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Inference Providers] deepinfra: add feature-extraction support by \u003ca href=\"https://github.com/ovuruska\"\u003e\u003ccode\u003e@​ovuruska\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4656\"\u003e#4656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🖥️ CLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Keep \u003ccode\u003ehf extensions\u003c/code\u003e off the metered GitHub REST API by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4659\"\u003e#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug and typo fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Fix scheduled upload of a single file in a subfolder by \u003ca href=\"https://github.com/dfedoryshchev\"\u003e\u003ccode\u003e@​dfedoryshchev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4619\"\u003e#4619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Download] Fix tqdm_class ignored by the Xet transfer bar by \u003ca href=\"https://github.com/bharadwaj-pendyala\"\u003e\u003ccode\u003e@​bharadwaj-pendyala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4647\"\u003e#4647\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/huggingface_hub/commit/b2da2d442c4165d9082a198cf247df3569140aee\"\u003e\u003ccode\u003eb2da2d4\u003c/code\u003e\u003c/a\u003e Release: v1.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a718e447a98d2d48af3a06887c59e59b475d6a70\"\u003e\u003ccode\u003ea718e44\u003c/code\u003e\u003c/a\u003e Release: v1.28.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7105c3d892c032a59f1f46044074c8d36c365b74\"\u003e\u003ccode\u003e7105c3d\u003c/code\u003e\u003c/a\u003e [CLI] Add --tensor-parallel-size / --data-parallel-size to `hf endpoints depl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a3d9d8aadda4e8dbebdeb17626616ebbbc59abe2\"\u003e\u003ccode\u003ea3d9d8a\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Omit \u003ccode\u003emodel.task\u003c/code\u003e instead of sending null on create (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4\"\u003e#4\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/909b162a05b88eda16e7c299a909ca98b02f72db\"\u003e\u003ccode\u003e909b162\u003c/code\u003e\u003c/a\u003e [Inference Endpoints] Add \u003ccode\u003ehf endpoints hardware\u003c/code\u003e to list available instances...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5ac97119b3900c66a9ea01accc64d0b3f06ea630\"\u003e\u003ccode\u003e5ac9711\u003c/code\u003e\u003c/a\u003e Do not use a redirect's Content-Length as file size in get_hf_file_metadata (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/99aba555d6f5f741f2f6686880181ddc43ff5c42\"\u003e\u003ccode\u003e99aba55\u003c/code\u003e\u003c/a\u003e [Docs] Normalize malformed docstring parameter entries (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4623\"\u003e#4623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e6c67d3d84a2656778d9e3342e0aaef6c8706d2\"\u003e\u003ccode\u003e2e6c67d\u003c/code\u003e\u003c/a\u003e [Inference Providers] deepinfra: add feature-extraction (embeddings) support ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/7a522f08fba5eb7a1ebe8b95e6e94614ce845fc1\"\u003e\u003ccode\u003e7a522f0\u003c/code\u003e\u003c/a\u003e docs: remove obsolete Repository guide references (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4679\"\u003e#4679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aa40a6524ba8d91bae39ec29a2c05a0b88f980a3\"\u003e\u003ccode\u003eaa40a65\u003c/code\u003e\u003c/a\u003e [Download] Fix ResolvedRevision string value after pickle/copy (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4692\"\u003e#4692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.27.0...v1.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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 `starlette` from 1.3.1 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3431\"\u003eKludex/starlette#3431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehttp.response.debug\u003c/code\u003e info via response extensions by \u003ca href=\"https://github.com/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/y2kbugger\"\u003e\u003ccode\u003e@​y2kbugger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3130\"\u003eKludex/starlette#3130\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/starlette/compare/1.5.1...1.6.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject inverted single-byte Range like \u003ccode\u003ebytes=5-4\u003c/code\u003e by \u003ca href=\"https://github.com/nikolauspschuetz\"\u003e\u003ccode\u003e@​nikolauspschuetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3389\"\u003eencode/starlette#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003eFileResponse\u003c/code\u003e to 100 ranges by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3430\"\u003eencode/starlette#3430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.5.0...1.5.1\"\u003ehttps://github.com/encode/starlette/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.5.0\u003c/h2\u003e\n\u003cp\u003eThis release is all about giving \u003ccode\u003eGZipMiddleware\u003c/code\u003e some love. 🗜️\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_content_types\u003c/code\u003e parameter to \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3418\"\u003eencode/starlette#3418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush GZip output for each streamed chunk by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3419\"\u003eencode/starlette#3419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip compression of partial responses in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3420\"\u003eencode/starlette#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand default excluded content types in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3421\"\u003eencode/starlette#3421\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.4.1...1.5.0\"\u003ehttps://github.com/encode/starlette/compare/1.4.1...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003ethread_minimum_size\u003c/code\u003e in \u003ccode\u003eGZipResponder\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3415\"\u003eKludex/starlette#3415\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/starlette/compare/1.4.0...1.4.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.4.0...1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLazily allocate GZipMiddleware compression resources by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3407\"\u003eKludex/starlette#3407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezlib.compressobj\u003c/code\u003e instead of \u003ccode\u003eGzipFile\u003c/code\u003e in \u003ccode\u003eGZipMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3411\"\u003eKludex/starlette#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOffload large GZip compression by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3410\"\u003eKludex/starlette#3410\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/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3334\"\u003eKludex/starlette#3334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lkk7\"\u003e\u003ccode\u003e@​lkk7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3359\"\u003eKludex/starlette#3359\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/starlette/compare/1.3.1...1.4.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.3.1...1.4.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/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0 (August 8, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emax_body_size\u003c/code\u003e to \u003ccode\u003eStarlette\u003c/code\u003e and route classes \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3431\"\u003e#3431\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ehtt...\n\n_Description has been truncated_","html_url":"https://github.com/yhfgyyf/vllm-GLM-5.3-Flash-sm120/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhfgyyf%2Fvllm-GLM-5.3-Flash-sm120/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.0.0","new_version":"3.4.1","update_type":"minor","path":null,"pr_created_at":"2026-08-28T01:38:54.000Z","version_change":"3.0.0 → 3.4.1","issue":{"uuid":"5273791861","node_id":"PR_kwDOTbO7F88AAAABBSDozg","number":17,"state":"closed","title":"Bump the minor-update group across 1 directory with 171 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T01:25:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T01:38:54.000Z","updated_at":"2026-09-04T01:25:38.000Z","time_to_close":604002,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":171,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.7.19","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.70.0","repository_url":"https://github.com/tqdm/tqdm"},{"name":"transformers","old_version":"5.5.3","new_version":"5.15.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"safetensors","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.141.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiohttp","old_version":"3.13.3","new_version":"3.14.3","repository_url":"https://github.com/aio-libs/aiohttp"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.26.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.14.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"filelock","old_version":"3.16.1","new_version":"3.32.4","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tpu-inference","old_version":"0.20.0","new_version":"0.27.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.83.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.83.0"},{"name":"numba","old_version":"0.65.0","new_version":"0.67.0","repository_url":"https://github.com/numba/numba"},{"name":"peft","old_version":"0.18.1","new_version":"0.20.0","repository_url":"https://github.com/huggingface/peft"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"runai-model-streamer","old_version":"0.15.7","new_version":"0.16.1"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"annotated-types","old_version":"0.7.0","new_version":"0.8.0","repository_url":"https://github.com/annotated-types/annotated-types"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.5.1","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.7","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.2.0"},{"name":"idna","old_version":"3.10","new_version":"3.19","repository_url":"https://github.com/kjd/idna"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.11.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.48.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.18.0","new_version":"2.21.0","repository_url":"https://github.com/pygments/pygments"},{"name":"ruff","old_version":"0.15.12","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.5.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"accelerate","old_version":"1.13.0","new_version":"1.14.0","repository_url":"https://github.com/huggingface/accelerate"},{"name":"aiohappyeyeballs","old_version":"2.6.1","new_version":"2.7.1","repository_url":"https://github.com/aio-libs/aiohappyeyeballs"},{"name":"alembic","old_version":"1.16.4","new_version":"1.19.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.14.2","repository_url":"https://github.com/agronholm/anyio"},{"name":"arctic-inference","old_version":"0.1.1","new_version":"0.2.0"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.7.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.30.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"bitsandbytes","old_version":"0.49.2","new_version":"0.50.1","repository_url":"https://github.com/bitsandbytes-foundation/bitsandbytes"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.10","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.79","repository_url":"https://github.com/boto/botocore"},{"name":"cffi","old_version":"2.0.0","new_version":"2.1.1","repository_url":"https://github.com/python-cffi/cffi"},{"name":"colorlog","old_version":"6.10.1","new_version":"6.12.0","repository_url":"https://github.com/borntyping/python-colorlog"},{"name":"coverage","old_version":"7.10.6","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.7.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.3.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.75.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"docker","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/docker/docker-py"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"genson","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/wolverdude/genson"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.56.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.13.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.10.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.5","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"h2","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/python-hyper/h2"},{"name":"harfile","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.6.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"hpack","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/hpack"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.28.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.165.10","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.13.1","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"llvmlite","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"mako","old_version":"1.3.10","new_version":"1.4.1","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.38.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.20.1","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nltk","old_version":"3.9.1","new_version":"3.10.3","repository_url":"https://github.com/nltk/nltk"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.6.1.10"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.25.0.15"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.1.6"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.6.9"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.2.51"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.31.2"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.7.2"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.44.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.65b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.5","new_version":"3.12.0","repository_url":"https://github.com/ijl/orjson"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.43.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-forked","old_version":"1.6.0","new_version":"1.7.5","repository_url":"https://github.com/pytest-dev/pytest-forked"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.2","repository_url":"https://github.com/getsentry/responses"},{"name":"runai-model-streamer-azure","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-gcs","old_version":"0.15.7","new_version":"0.16.1"},{"name":"runai-model-streamer-s3","old_version":"0.15.7","new_version":"0.16.1"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.19.2","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.14.0","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.1","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.71.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.27.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.52.4","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.31.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.8.2","repository_url":"https://github.com/jquast/wcwidth"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.5","repository_url":"https://github.com/aio-libs/yarl"},{"name":"nvidia-cutlass-dsl","old_version":"4.5.2","new_version":"4.7.0","repository_url":"https://github.com/NVIDIA/cutlass"},{"name":"tokenspeed-mla","old_version":"0.1.2","new_version":"0.2.5","repository_url":"https://github.com/lightseekorg/tokenspeed"},{"name":"zentorch","old_version":"2.11.0.0","new_version":"2.13.0.0","repository_url":"https://github.com/amd/ZenDNN-pytorch-plugin"},{"name":"helion","old_version":"1.0.0","new_version":"1.4.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 171 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.7.19` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.15.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.141.1` |\n| [aiohttp](https://github.com/aio-libs/aiohttp) | `3.13.3` | `3.14.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.26.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.14.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.32.4` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.20.0` | `0.27.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.83.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.83.0` |\n| [numba](https://github.com/numba/numba) | `0.65.0` | `0.67.0` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.20.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| runai-model-streamer | `0.15.7` | `0.16.1` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [annotated-types](https://github.com/annotated-types/annotated-types) | `0.7.0` | `0.8.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.5.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.2` |\n| griffelib | `2.0.2` | `2.2.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.19` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.11.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.48.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.21.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.16.4` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.5.0` |\n| [accelerate](https://github.com/huggingface/accelerate) | `1.13.0` | `1.14.0` |\n| [aiohappyeyeballs](https://github.com/aio-libs/aiohappyeyeballs) | `2.6.1` | `2.7.1` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.19.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.14.2` |\n| arctic-inference | `0.1.1` | `0.2.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.7.2` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.30.0` |\n| [bitsandbytes](https://github.com/bitsandbytes-foundation/bitsandbytes) | `0.49.2` | `0.50.1` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.3.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.10` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.79` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.79` |\n| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |\n| [colorlog](https://github.com/borntyping/python-colorlog) | `6.10.1` | `6.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.15.4` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.3.1` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.7.0` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.3.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.75.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.3` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [genson](https://github.com/wolverdude/genson) | `1.3.0` | `1.4.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.34.0` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.40.2` | `2.56.3` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.1` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-python) | `3.4.0` | `3.13.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-cloud-python) | `2.7.2` | `2.10.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.5` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [h2](https://github.com/python-hyper/h2) | `4.3.0` | `4.4.1` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.5.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.4.1` |\n| [hpack](https://github.com/python-hyper/hpack) | `4.1.0` | `4.2.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.28.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.16.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.165.10` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.13.1` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.4.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.38.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.2.1` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.20.1` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.10.3` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.6.1.10` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.25.0.15` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.1.6` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.6.9` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.2.51` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.31.2` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.7.2` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.44.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.65b0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.12.0` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.43.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.3` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-forked](https://github.com/pytest-dev/pytest-forked) | `1.6.0` | `1.7.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.2` |\n| runai-model-streamer-azure | `0.15.7` | `0.16.1` |\n| runai-model-streamer-gcs | `0.15.7` | `0.16.1` |\n| runai-model-streamer-s3 | `0.15.7` | `0.16.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.19.2` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.14.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.71.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.27.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.52.4` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.31.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.8.2` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.5` |\n| [nvidia-cutlass-dsl](https://github.com/NVIDIA/cutlass) | `4.5.2` | `4.7.0` |\n| [tokenspeed-mla](https://github.com/lightseekorg/tokenspeed) | `0.1.2` | `0.2.5` |\n| [zentorch](https://github.com/amd/ZenDNN-pytorch-plugin) | `2.11.0.0` | `2.13.0.0` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.4.0` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.7.19\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.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\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/0525affc5309f8d53deac351e4926b11eb8a282c\"\u003e\u003ccode\u003e0525aff\u003c/code\u003e\u003c/a\u003e Git issue 608: SIGSEGV: out-of-bounds read in \u003ccode\u003ebytes1_char_at()\u003c/code\u003e with `DOTALL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/07dfa3b6b2d5a30919ac8564c1542a4487d40f8e\"\u003e\u003ccode\u003e07dfa3b\u003c/code\u003e\u003c/a\u003e Git issue 607: SIGSEGV: NULL pointer dereference in \u003ccode\u003ebasic_match()\u003c/code\u003e when `(?R...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e7716da67cc2de8a7aaed4f7f1d37688fa480644\"\u003e\u003ccode\u003ee7716da\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/e204ddb02948b234fc8568fc0b220237486e8abd\"\u003e\u003ccode\u003ee204ddb\u003c/code\u003e\u003c/a\u003e Git issue 606: \u003ccode\u003eregex\u003c/code\u003e's compiled-pattern cache eviction is not free-threadin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/d7e1927f9d34856b1a75fefc8a87950f8e399669\"\u003e\u003ccode\u003ed7e1927\u003c/code\u003e\u003c/a\u003e Updated main.yml for Python 3.15.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b18daa63c23770ae8b455585c85632808eb84bca\"\u003e\u003ccode\u003eb18daa6\u003c/code\u003e\u003c/a\u003e Git issue 604: regex fails on free-threading python because setlocale is not ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.7.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.67.3 to 4.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.70.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.concurrent\u003c/code\u003e: major improvements\n\u003cul\u003e\n\u003cli\u003esupport \u003ccode\u003eprocess_map(mp_context, max_tasks_per_child)\u003c/code\u003e, \u003ccode\u003ethread_map(thread_name_prefix)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1265\"\u003e#1265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal\u003c/code\u003e based on shortest iterable length (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse default \u003ccode\u003emax_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1543\"\u003e#1543\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1530\"\u003e#1530\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003ebuffersize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1576\"\u003e#1576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove ETA (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1708\"\u003e#1708\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate \u003ccode\u003eas_completed\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1709\"\u003e#1709\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.concurrent.intepreter_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e: support iterables with only \u003ccode\u003e__aiter__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1714\"\u003e#1714\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003ereset(float(\u0026quot;inf\u0026quot;))\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eframework: test \u0026amp; reduce wheel size (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.logging\u003c/code\u003e: preserve filters (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1775\"\u003e#1775\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1581\"\u003e#1581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erich\u003c/code\u003e: misc fixes (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1773\"\u003e#1773\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esupport generators (without \u003ccode\u003elen\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1391\"\u003e#1391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etotal=float('inf')\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1781\"\u003e#1781\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix potential \u003ccode\u003eAttributeError\u003c/code\u003e on exit (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1778\"\u003e#1778\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1668\"\u003e#1668\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1537\"\u003e#1537\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix minor docs typos (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1780\"\u003e#1780\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1746\"\u003e#1746\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.69.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003etqdm.asyncio.gather(..., return_exceptions=False)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1776\"\u003e#1776\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1671\"\u003e#1671\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1286\"\u003e#1286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003ebump workflow actions \u0026amp; pre-commit hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.4 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etrim to \u003ccode\u003encols\u003c/code\u003e even when \u003ccode\u003e'{bar}' not in bar_format\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1717\"\u003e#1717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1767\"\u003e#1767\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003etqdm.write\u003c/code\u003e when \u003ccode\u003estdout=None\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1768\"\u003e#1768\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eutils\u003c/code\u003e: delay \u003ccode\u003eos.get_terminal_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eautonotebook\u003c/code\u003e: support QtConsole, Spyder, JupyterLite (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1763\"\u003e#1763\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1628\"\u003e#1628\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1559\"\u003e#1559\u003c/a\u003e \u0026lt;- \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1283\"\u003e#1283\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1098\"\u003e#1098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eminor docs updates\n\u003cul\u003e\n\u003cli\u003efix typo (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003egit-fame\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc minor framework updates\n\u003cul\u003e\n\u003cli\u003efix \u0026amp; update CI build\u003c/li\u003e\n\u003cli\u003epre-commit: add docs \u0026amp; metadata generation\u003c/li\u003e\n\u003cli\u003emove \u003ccode\u003etox.ini\u003c/code\u003e -\u0026gt; \u003ccode\u003epyproject.toml\u003c/code\u003e, move \u003ccode\u003etox-gh-actions\u003c/code\u003e -\u0026gt; \u003ccode\u003etox-gh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eadd Python 3.14, drop 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.68.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert accidental change to \u003ccode\u003eascii\u003c/code\u003e default (fixes \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1760\"\u003e#1760\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnicodeEncodeError: 'charmap' codec can't encode characters in position 6-7: character maps to \u0026lt;undefined\u0026gt;\u003c/code\u003e can be fixed by installing \u003ccode\u003etqdm!=4.68.0,!=4.68.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc docs updates\n\u003cul\u003e\n\u003cli\u003efix links\u003c/li\u003e\n\u003cli\u003ereplace stray \u003ccode\u003erst\u003c/code\u003e -\u0026gt; \u003ccode\u003emd\u003c/code\u003e syntax\u003c/li\u003e\n\u003cli\u003econsistent \u0026quot;progress bar\u0026quot; terminology (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1737\"\u003e#1737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/96f2e60e4584cdab57a23602e27043d0465254ad\"\u003e\u003ccode\u003e96f2e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1777\"\u003e#1777\u003c/a\u003e from shermansiu/feat/interpreter-pool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c27393ec3a0a91d83dd53f04b80ee61f9c0cd5e4\"\u003e\u003ccode\u003ec27393e\u003c/code\u003e\u003c/a\u003e misc tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/061c6236d56f8c1ed0934606c3b4ee5c59cf122e\"\u003e\u003ccode\u003e061c623\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003etqdm.monitor_interval\u003c/code\u003e for subinterpreters because they do not have ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9fc160ba7f959f955058985b0d1122fc9f0b2729\"\u003e\u003ccode\u003e9fc160b\u003c/code\u003e\u003c/a\u003e Update how we check for \u003ccode\u003einterpreter_map\u003c/code\u003e support in the tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b42463a20fffc17ad4df2aa145076afb0dc4486d\"\u003e\u003ccode\u003eb42463a\u003c/code\u003e\u003c/a\u003e Ensure that subinterpreters can import tqdm while unpickling the initializer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/16d5486c402a2808ec9c398538e0bc56d00866de\"\u003e\u003ccode\u003e16d5486\u003c/code\u003e\u003c/a\u003e Add support for nested progress bars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/9f5890fda6cf43e66782fbf34647f808bdc66d58\"\u003e\u003ccode\u003e9f5890f\u003c/code\u003e\u003c/a\u003e Add initial implementation for interpreter_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/321f920bb7368e27eee04fed1c0de2a8a236fd9d\"\u003e\u003ccode\u003e321f920\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1783\"\u003e#1783\u003c/a\u003e from LuShadowX/reset-inf-total\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4664b5701ebc5299290a1fb31a229fb1bfc64703\"\u003e\u003ccode\u003e4664b57\u003c/code\u003e\u003c/a\u003e minor tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/426a0988a1e9970041f5a649ae8a6376c5293fbe\"\u003e\u003ccode\u003e426a098\u003c/code\u003e\u003c/a\u003e Treat inf total as unknown in reset() too\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.67.3...v4.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePatch release: v5.15.1\u003c/h2\u003e\n\u003ch1\u003ePatch release v5.15.1\u003c/h1\u003e\n\u003cp\u003eThis patch most notably solves a few issues with DFlash and MTP candidate generators, as well as an issue where images could sometimes not be processed on accelerator if using Lanczos filter.\u003c/p\u003e\n\u003cp\u003eIt contains the following commits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e) by \u003ca href=\"https://github.com/sywangyi\"\u003e\u003ccode\u003e@​sywangyi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign logit distributions for CandidateGenerators using sampling  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e) by \u003ca href=\"https://github.com/zucchini-nlp\"\u003e\u003ccode\u003e@​zucchini-nlp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e) by \u003ca href=\"https://github.com/guarin\"\u003e\u003ccode\u003e@​guarin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease: v5.15.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.15.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eMeta Muse Glimmer\u003c/h3\u003e\n\u003cp\u003eMuse Glimmer, released today, is Meta’s new multimodal model, especially designed for agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license, it can be deployed to local setups for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups.\u003c/p\u003e\n\u003cp\u003eMuse Glimmer is a dense 30B parameter model consisting of:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2B ViT-style encoder for vision (Perception Encoder)\u003c/li\u003e\n\u003cli\u003e28B parameter text decoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe're covering it in the following blogpost: \u003ca href=\"http://hf.co/blog/muse-glimmer\"\u003ehttp://hf.co/blog/muse-glimmer\u003c/a\u003e\u003c/p\u003e\n\n\u003chr /\u003e\n\u003ch3\u003eGraniteMoeSWA \u0026amp; GraniteSWA\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granitemoe_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_swa\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite-swa and Granitemoe-swa model support (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47179\"\u003e#47179\u003c/a\u003e) by \u003ca href=\"https://github.com/daviswer\"\u003e\u003ccode\u003e@​daviswer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47179\"\u003e#47179\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eA.X-K1 \u0026amp; A.X-K2\u003c/h3\u003e\n\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/axk2\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AXK2 from SKT (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47528\"\u003e#47528\u003c/a\u003e) by \u003ca href=\"https://github.com/vasqu\"\u003e\u003ccode\u003e@​vasqu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/47528\"\u003e#47528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/transformers/commit/550d7b3834670483a4df436541272c055dc364bf\"\u003e\u003ccode\u003e550d7b3\u003c/code\u003e\u003c/a\u003e Release: v5.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7e9f99c26d9319ab3b06ab975c7589bbdd93c9d1\"\u003e\u003ccode\u003e7e9f99c\u003c/code\u003e\u003c/a\u003e Fix MTP config when mlp_layer_types is absent (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48015\"\u003e#48015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6e336fdd2488de09507e1ecb38c09220d319158e\"\u003e\u003ccode\u003e6e336fd\u003c/code\u003e\u003c/a\u003e Fix gemma4 video to device (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47896\"\u003e#47896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/c79e26aee9c22c9da93e5512cbca27f4ec4aa004\"\u003e\u003ccode\u003ec79e26a\u003c/code\u003e\u003c/a\u003e Fallback from 'lanczos' to 'bicubic' when on cuda (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48026\"\u003e#48026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d93f042f090f969989322b456ede01e9f33e06f7\"\u003e\u003ccode\u003ed93f042\u003c/code\u003e\u003c/a\u003e Align logit distributions for CandidateGenerators using sampling (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/48007\"\u003e#48007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/69bc61d44e476e9873fc053c904e59ae5d0208ad\"\u003e\u003ccode\u003e69bc61d\u003c/code\u003e\u003c/a\u003e Fix DFlash candidate token device mismatch with device_map=\u0026quot;auto\u0026quot; (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47877\"\u003e#47877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5eddc12edfaf8cafde8c9bae4ccb12f8a139b4f9\"\u003e\u003ccode\u003e5eddc12\u003c/code\u003e\u003c/a\u003e Release: v5.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7bfaf47cfa71a554fbfe81a4ca2774f492804903\"\u003e\u003ccode\u003e7bfaf47\u003c/code\u003e\u003c/a\u003e Add MuseGlimmer (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47867\"\u003e#47867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4bd3150f99a73f380fc113ecfc60a9fd5c020079\"\u003e\u003ccode\u003e4bd3150\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix CodeLlama tokenizer dropping leading whitespace on decode (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/47488\"\u003e#47488\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/fd12552d770f745fdbe41031ff4daa688f5ed57e\"\u003e\u003ccode\u003efd12552\u003c/code\u003e\u003c/a\u003e Fix cached_files silently returning stale file on read-only filesystem (EROFS...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `safetensors` from 0.7.0 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/safetensors/releases\"\u003esafetensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.0\u003c/h2\u003e\n\u003ch2\u003eNews\u003c/h2\u003e\n\u003cp\u003esafetensors joins the PyTorch foundation!\u003c/p\u003e\n\n\u003cp\u003eRead more on that: \u003ca href=\"https://huggingface.co/blog/safetensors-joins-pytorch-foundation\"\u003ehttps://huggingface.co/blog/safetensors-joins-pytorch-foundation\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003eSafetensors 0.8.0 brings direct to Metal loading on Apple Silicon, GIL-free serialization, broader hardware and dtype coverage, and a stronger Python API.\u003c/p\u003e\n\u003ch3\u003eBreaking\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003eserialize\u003c/code\u003e and \u003ccode\u003eserialize_file\u003c/code\u003e functions now release the GIL during writes, enabling true multithreaded saves from Python. Their input contract has also changed: tensor metadata is now passed via a \u003ccode\u003eTensorSpec\u003c/code\u003e class (exported from safetensors) instead of plain dicts, making API more explicit and robust to misinputs. This is a breaking change for anyone calling the low-level \u003ccode\u003eserialize\u003c/code\u003e / \u003ccode\u003eserialize_file\u003c/code\u003e API directly; the high-level wrappers (\u003ccode\u003esafetensors.torch\u003c/code\u003e, \u003ccode\u003esafetensors.numpy\u003c/code\u003e, \u003ccode\u003esafetensors.paddle\u003c/code\u003e) are updated internally and their public API is unchanged.\u003c/p\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10 (was 3.9). Python 3.9 reached end-of-life in October 2025.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTensorIndexer::Narrow\u003c/code\u003e now carries a \u003ccode\u003estep: NonZeroUsize\u003c/code\u003e parameter, so a slice is now \u003ccode\u003estart:stop:step\u003c/code\u003e. This is a fix as this silent error was hidden behind the \u003ccode\u003eStorage::Torch\u003c/code\u003e variant which offloaded slicing logic to torch directly.\u003c/p\u003e\n\u003ch3\u003eCI\u003c/h3\u003e\n\u003cp\u003eOn the platform side, this release adds Windows ARM64 wheel builds, riscv64 Linux wheels, and CI has been hardened with pinned GitHub Actions SHAs.\u003c/p\u003e\n\u003cp\u003eAlso dropped the anaconda CI we had as there's already an automatic tracker via conda-forge.\u003c/p\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDirect MPS load on Apple Silicon: tensors are directly loaded in an \u003ccode\u003eMTLBuffer\u003c/code\u003e and handed to the frameworks that support it (only torch atm) via DLPack, skipping needless copies.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ebackend\u003c/code\u003e parameter introduced, for the addition of the \u003ccode\u003epread\u003c/code\u003e backend. We now support loading files via \u003ccode\u003epread(2)\u003c/code\u003e syscall instead of just mmap. Useful for specific archs/platforms.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_slice\u003c/code\u003e now handles ellipsis \u003ccode\u003e[...]\u003c/code\u003e and strided slices \u003ccode\u003e[:, ::8]\u003c/code\u003e wherever safetensors does the slicing itself (\u003ccode\u003epread\u003c/code\u003e for any framework, MPS, and \u003ccode\u003emmap\u003c/code\u003e outside torch/paddle), which silently dropped the step or rejected \u003ccode\u003e...\u003c/code\u003e before.\u003c/li\u003e\n\u003cli\u003eMUSA device support for MooreThreads GPUs.\u003c/li\u003e\n\u003cli\u003eNew dtype support includes \u003ccode\u003efloat8_e4m3fnuz\u003c/code\u003e and \u003ccode\u003efloat8_e5m2fnuz\u003c/code\u003e (AMD FNUZ FP8 formats).\u003c/li\u003e\n\u003cli\u003eThe reader is now explicitly lenient about leading whitespace in the JSON header, which keeps the door open for future page-aligned writes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements/perf\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFile writes on macOS now use \u003ccode\u003eF_NOCACHE\u003c/code\u003e for direct I/O, yielding roughly 30% faster \u003ccode\u003esave_file\u003c/code\u003e on Apple Silicon.\u003c/li\u003e\n\u003cli\u003eThe packaging dependency has been dropped from the \u003ccode\u003e[torch]\u003c/code\u003e extra, replaced by a simple \u003ccode\u003ehasattr\u003c/code\u003e probe for efficiency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arm64 windows support by \u003ca href=\"https://github.com/finnagin\"\u003e\u003ccode\u003e@​finnagin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/678\"\u003esafetensors/safetensors#678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(backend): support musa backend for MooreThreads GPU by \u003ca href=\"https://github.com/caizhi-mt\"\u003e\u003ccode\u003e@​caizhi-mt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/671\"\u003esafetensors/safetensors#671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd gil free serialize_file(serialize_file_threadable) by \u003ca href=\"https://github.com/TomQunChao\"\u003e\u003ccode\u003e@​TomQunChao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/679\"\u003esafetensors/safetensors#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: remove outdated comment by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/685\"\u003esafetensors/safetensors#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add direct io write fast path on macos by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/687\"\u003esafetensors/safetensors#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep dropped reference to tensor moved from gpu to cpu by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/689\"\u003esafetensors/safetensors#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: bump torch to \u003ccode\u003e2.4\u003c/code\u003e by \u003ca href=\"https://github.com/McPatate\"\u003e\u003ccode\u003e@​McPatate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/710\"\u003esafetensors/safetensors#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContribution guide security by \u003ca href=\"https://github.com/LysandreJik\"\u003e\u003ccode\u003e@​LysandreJik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/safetensors/safetensors/pull/712\"\u003esafetensors/safetensors#712\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/safetensors/safetensors/blob/main/RELEASE.md\"\u003esafetensors's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.0-dev.0 → 0.8.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nUpdate lockfiles again:\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecargo check\ncd bindings/python \u0026amp;amp;\u0026amp;amp; uv lock\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Commit:\u0026lt;/p\u0026gt;\n\u0026lt;pre\u0026gt;\u0026lt;code\u0026gt;Set version to 0.8.0\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;The Python version is not set in \u0026lt;code\u0026gt;pyproject.toml\u0026lt;/code\u0026gt; directly — maturin reads it from \u0026lt;code\u0026gt;bindings/python/Cargo.toml\u0026lt;/code\u0026gt; at build time.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;4. Create the release on GitHub\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;Go to the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/releases\u0026quot;\u0026gt;GitHub Releases page\u0026lt;/a\u0026gt; and draft a new release:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Choose the release branch\u0026lt;/strong\u0026gt; (e.g. \u0026lt;code\u0026gt;git_v0.8.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Create a new tag\u0026lt;/strong\u0026gt; on publish: \u0026lt;code\u0026gt;v0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;Generate release notes\u0026lt;/strong\u0026gt; from the previous tag (e.g. \u0026lt;code\u0026gt;v0.7.0\u0026lt;/code\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Add any notable highlights at the top of the generated notes\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;p\u0026gt;Structure for manual notes:\u0026lt;/p\u0026gt;\n\u0026lt;pre lang=\u0026quot;markdown\u0026quot;\u0026gt;\u0026lt;code\u0026gt;## Breaking changes\n- ...\n\n## New features\n- ...\n\n## Bug fixes\n- ...\n\n## Internal / CI\n- ...\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;p\u0026gt;Click \u0026lt;strong\u0026gt;Publish release\u0026lt;/strong\u0026gt;. This creates the tag, which triggers the three release workflows.\u0026lt;/p\u0026gt;\n\u0026lt;h3\u0026gt;5. Monitor the CI\u0026lt;/h3\u0026gt;\n\u0026lt;p\u0026gt;The tag triggers two workflow runs in the \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/actions\u0026quot;\u0026gt;Actions tab\u0026lt;/a\u0026gt;:\u0026lt;/p\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;strong\u0026gt;CI\u0026lt;/strong\u0026gt; (Python release) — builds wheels for every platform × Python version, uploads to PyPI. Can take up to over 30 minutes.\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/a406ca3e7a90598be0cd05a50069cb9bf5ef6ba6\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a406ca3\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move crates.io to trusted publisher OIDC\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/d0368d14c0a417fb2ca2a6627e9513d17f74f9b7\u0026quot;\u0026gt;\u0026lt;code\u0026gt;d0368d1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: \u0026lt;code\u0026gt;0.8.0\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/5ec3ec14c506d09598df6d96f36cd9a4ea94aafa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;5ec3ec1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(release): move to pypi trusted publisher OIDC (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/778\u0026quot;\u0026gt;#778\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e37dc536ce598ef1d71a9ad712987571f2f05808\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e37dc53\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: bump main to \u0026lt;code\u0026gt;0.9.0-dev.0\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/777\u0026quot;\u0026gt;#777\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/6e32aa7b029d323238233110c1cdecae22cbe564\u0026quot;\u0026gt;\u0026lt;code\u0026gt;6e32aa7\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; refactor: replace \u0026lt;code\u0026gt;_host_alias_storage\u0026lt;/code\u0026gt; w/ \u0026lt;code\u0026gt;MTLBuffer\u0026lt;/code\u0026gt; (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/767\u0026quot;\u0026gt;#767\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/24b0b2857fef49be734b9ab72ce97c09bb25f5b9\u0026quot;\u0026gt;\u0026lt;code\u0026gt;24b0b28\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix: write to tempfile + rename to preserve mmap source (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/764\u0026quot;\u0026gt;#764\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/73132135947275c5dda135438e4c2e4bd70a2b10\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7313213\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update free-threading tests for Python 3.14 (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/699\u0026quot;\u0026gt;#699\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/e9091e13ec359e9e5b8b45413fcbe340444dde1c\u0026quot;\u0026gt;\u0026lt;code\u0026gt;e9091e1\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; feat: add \u0026lt;code\u0026gt;backend\u0026lt;/code\u0026gt; with pread file (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/760\u0026quot;\u0026gt;#760\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/1b0fe9c6acf3ac2ec7f4a0fd13bccfc0b65ce765\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1b0fe9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix(ci): security audit slack message format (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/757\u0026quot;\u0026gt;#757\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/safetensors/safetensors/commit/7efac22872a53ae3b30a15f8e786404322f10458\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7efac22\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; [MPS] Fast load of the tensors (\u0026lt;a href=\u0026quot;https://redirect.github.com/huggingface/safetensors/issues/756\u0026quot;\u0026gt;#756\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/huggingface/safetensors/compare/v0.7.0...v0.8.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `fastapi` from 0.128.0 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://redire...\n\n_Description has been truncated_","html_url":"https://github.com/codecookinging/vllm_marlin/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecookinging%2Fvllm_marlin/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"3.4.0","new_version":"3.4.1","update_type":"patch","path":null,"pr_created_at":"2026-08-25T08:22:03.000Z","version_change":"3.4.0 → 3.4.1","issue":{"uuid":"5243643953","node_id":"PR_kwDOUDghOM8AAAABA6DMVw","number":5,"state":"closed","title":"Bump the python group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T14:38:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-25T08:22:03.000Z","updated_at":"2026-09-04T14:38:05.000Z","time_to_close":886560,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":15,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"djangorestframework","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"coverage","old_version":"7.15.3","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.7","new_version":"6.1.0"},{"name":"django-upgrade","old_version":"1.31.1","new_version":"1.32.0","repository_url":"https://github.com/adamchainz/django-upgrade"},{"name":"djangorestframework-stubs","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"djlint","old_version":"1.43.2","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.1","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.16.1","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.17.1` | `3.18.0` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.1.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.15.3` | `7.15.4` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.7` | `6.1.0` |\n| [django-upgrade](https://github.com/adamchainz/django-upgrade) | `1.31.1` | `1.32.0` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.17.1` | `3.18.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.43.2` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.3.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.1` | `4.6.2` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.16.1` | `0.16.4` |\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Django 4.2, Django 5.0 and Django 5.1 by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9899\"\u003eencode/django-rest-framework#9899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange errors for list serializers (\u003ccode\u003emany=True\u003c/code\u003e) to dict format by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9837\"\u003eencode/django-rest-framework#9837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eunaccent\u003c/code\u003e to \u003ccode\u003eSearchFilter\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9385\"\u003eencode/django-rest-framework#9385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10003\"\u003eencode/django-rest-framework#10003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@throttle_scope\u003c/code\u003e function based view decorator by \u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enulls_distinct\u003c/code\u003e support to \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003echoices\u003c/code\u003e param for non-editable fields by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9929\"\u003eencode/django-rest-framework#9929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove cursor pagination template accessibility in browsable API by \u003ca href=\"https://github.com/kosbemrunal\"\u003e\u003ccode\u003e@​kosbemrunal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9905\"\u003eencode/django-rest-framework#9905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix partial form data updates involving \u003ccode\u003eListField\u003c/code\u003e by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9902\"\u003eencode/django-rest-framework#9902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash due to browsable API extra action permissions by \u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle unhashable \u003ccode\u003eBooleanField\u003c/code\u003e representation value by \u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAPI schema for zero numeric bounds on ListField children by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ecc_delim_re usage\u003c/code\u003e with \u003ccode\u003esplit_header_value\u003c/code\u003e for Django 6.1+ compatibility by \u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eset_rollback\u003c/code\u003e to only rollback initialized connections by \u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DictField HTML input returning empty dict for missing fields by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise clear error for unsupported unique-together list updates by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9981\"\u003eencode/django-rest-framework#9981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrepare release 3.18.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/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\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/Im-Bilal\"\u003e\u003ccode\u003e@​Im-Bilal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9967\"\u003eencode/django-rest-framework#9967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harshitkandpal\"\u003e\u003ccode\u003e@​harshitkandpal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9993\"\u003eencode/django-rest-framework#9993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/udit-prabhakar\"\u003e\u003ccode\u003e@​udit-prabhakar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9962\"\u003eencode/django-rest-framework#9962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sai09111995\"\u003e\u003ccode\u003e@​sai09111995\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9884\"\u003eencode/django-rest-framework#9884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Elkasitu\"\u003e\u003ccode\u003e@​Elkasitu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8494\"\u003eencode/django-rest-framework#8494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vishalanandl177\"\u003e\u003ccode\u003e@​vishalanandl177\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10002\"\u003eencode/django-rest-framework#10002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anurag12anu\"\u003e\u003ccode\u003e@​anurag12anu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9814\"\u003eencode/django-rest-framework#9814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/11875a38f483cea69d8ef2fd9ede6b96fb602ec4\"\u003e\u003ccode\u003e11875a3\u003c/code\u003e\u003c/a\u003e Prepare release 3.18.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/d346a8c3c92a36fdb462c992331e238d0a737305\"\u003e\u003ccode\u003ed346a8c\u003c/code\u003e\u003c/a\u003e Add note about Browsable API simulating \u003ccode\u003ePOST\u003c/code\u003e in documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9814\"\u003e#9814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/80d535ddf08226020a9f44ca57f6eb1bbd91fa6a\"\u003e\u003ccode\u003e80d535d\u003c/code\u003e\u003c/a\u003e Fix GHA workflow for preparing release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/aa1876b8b6009a618e6241f91e2c2d6dfbacb5d9\"\u003e\u003ccode\u003eaa1876b\u003c/code\u003e\u003c/a\u003e Update fields.md explaining how the \u003ccode\u003esource\u003c/code\u003e argument affects `.validated_dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/000bb334f7995a972e700f81fbdbd50a80f38985\"\u003e\u003ccode\u003e000bb33\u003c/code\u003e\u003c/a\u003e Add nulls_distinct support to UniqueTogetherValidator (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9866\"\u003e#9866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7508e0cf122d5250a2cba824a3c537a288acb489\"\u003e\u003ccode\u003e7508e0c\u003c/code\u003e\u003c/a\u003e Raise clear error for unsupported list update validation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9981\"\u003e#9981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/69d1cd7f1322060397b7f747d199e3926f5d297b\"\u003e\u003ccode\u003e69d1cd7\u003c/code\u003e\u003c/a\u003e Fix DictField HTML input returning empty dict for missing fields (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9891\"\u003e#9891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/bbc62aca6f67a2a7fe0427a768973f5d9f143c58\"\u003e\u003ccode\u003ebbc62ac\u003c/code\u003e\u003c/a\u003e Update Django 6.1 dependency to stable release. (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f78043440a7884936232fdffffb68adcdbb3b272\"\u003e\u003ccode\u003ef780434\u003c/code\u003e\u003c/a\u003e Add GHA workflow to prepare a release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/dc027d2bb41c3858fc2fc95bf2b04b33f0cdc5be\"\u003e\u003ccode\u003edc027d2\u003c/code\u003e\u003c/a\u003e set_rollback should only rollback initialized connections (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9599\"\u003e#9599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\u003c/code\u003e\nare treated as patterns, so \u003ccode\u003eui/*/config.json\u003c/code\u003e watches every view's config\nwithout listing them one by one. Patterns are re-expanded on every reload\ncheck rather than once at startup, so a file created later starts being\nwatched without restarting gunicorn, and \u003ccode\u003e**\u003c/code\u003e recurses. A pattern matching\nnothing warns instead of failing, since with live expansion it may match later\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/1643\"\u003e#1643\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3662\"\u003e#3662\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency floors raised past known advisories\u003c/strong\u003e: every declared floor was\nchecked against the advisory database. \u003ccode\u003etornado\u003c/code\u003e, \u003ccode\u003eh2\u003c/code\u003e, \u003ccode\u003esetuptools\u003c/code\u003e and\n\u003ccode\u003epymdown-extensions\u003c/code\u003e permitted vulnerable versions and now require the first\nclean release; \u003ccode\u003epytest\u003c/code\u003e and \u003ccode\u003ehttpx\u003c/code\u003e were unpinned and now carry floors. The\n\u003ccode\u003etornado\u003c/code\u003e example pinned \u003ccode\u003etornado\u0026lt;6\u003c/code\u003e, which was both the source of several\nadvisories and older than the \u003ccode\u003e\u0026gt;=6.5.0\u003c/code\u003e the tornado worker needs, so the\nexample could not run as pinned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSIGHUP did not reload the logger configuration\u003c/strong\u003e: \u003ccode\u003eArbiter.reload()\u003c/code\u003e\nre-read the configuration file but kept using the logger built at startup,\ncalling only \u003ccode\u003ereopen_files()\u003c/code\u003e on its existing handlers. Changes to\n\u003ccode\u003elogconfig\u003c/code\u003e, \u003ccode\u003elogconfig_dict\u003c/code\u003e, \u003ccode\u003elogconfig_json\u003c/code\u003e and \u003ccode\u003eloglevel\u003c/code\u003e were ignored\nuntil a full restart, which in containers meant replacing the pod. The\nexisting logger now re-runs its setup on reload, so new handlers, formats\nand levels take effect while the process identity and its listeners are\npreserved, and re-running the setup no longer stacks duplicate syslog\nhandlers. An invalid log configuration on reload is not fatal either: the\nerror is reported on stderr, the previous working configuration is restored\nand the master keeps running with it\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3353\"\u003e#3353\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTruncated chunked bodies accepted\u003c/strong\u003e: RFC 9112 section 7.1.2 ends a chunked\nbody with \u003ccode\u003e0 CRLF CRLF\u003c/code\u003e, the second CRLF being the mandatory empty trailer\nsection. \u003ccode\u003eChunkedReader.parse_chunk_size()\u003c/code\u003e swallowed the \u003ccode\u003eNoMoreData\u003c/code\u003e raised\nwhile scanning for it, so a body cut short right after the last chunk line was\ntreated as complete instead of rejected. It now raises\n\u003ccode\u003eChunkMissingTerminator\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3382\"\u003e#3382\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3685\"\u003e#3685\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e--spew\u003c/code\u003e crashed on dynamically generated code\u003c/strong\u003e: the trace hook indexed the\n2-tuple returned by \u003ccode\u003einspect.getsourcelines()\u003c/code\u003e by line number rather than\nindexing the list of lines, so a frame with no \u003ccode\u003e__file__\u003c/code\u003e raised\n\u003ccode\u003eAttributeError: 'int' object has no attribute 'rstrip'\u003c/code\u003e on line 1 and\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/benoitc/gunicorn/commit/71b59a75820dd4a762dc42a3280124168b4e44a8\"\u003e\u003ccode\u003e71b59a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3698\"\u003e#3698\u003c/a\u003e from benoitc/fix/docker-health-check-readerror\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/48287de8d8360825c85ac981ddfe9c80dba3b418\"\u003e\u003ccode\u003e48287de\u003c/code\u003e\u003c/a\u003e test: catch every transport error in the docker health check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3110e8c37f716ca0ed63ca7f80c7c9ea0fbbdd50\"\u003e\u003ccode\u003e3110e8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3696\"\u003e#3696\u003c/a\u003e from benoitc/docs/roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cc56c410b7103c1f2b877279f81cb3a14705315a\"\u003e\u003ccode\u003ecc56c41\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3693\"\u003e#3693\u003c/a\u003e from benoitc/release/26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5cf1f1651a40fa36afe13fde623e3437ca872463\"\u003e\u003ccode\u003e5cf1f16\u003c/code\u003e\u003c/a\u003e docs: surface the roadmap on the site home page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7e35f72d135056c37da321becf22b19aeec06937\"\u003e\u003ccode\u003e7e35f72\u003c/code\u003e\u003c/a\u003e docs: add FastCGI to the roadmap and point items at Ideas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/18ddc586c9b9513b25e92c6ed6f818f66ff3abcd\"\u003e\u003ccode\u003e18ddc58\u003c/code\u003e\u003c/a\u003e docs: drop the framework and reverse-proxy non-goals from the roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/1ecae56ebd096ee4f94d12c59a36f240ce348572\"\u003e\u003ccode\u003e1ecae56\u003c/code\u003e\u003c/a\u003e docs: add a roadmap and make the chat easy to find\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ca412e3f7134bd9f0e91851778ae6d8dd222cf41\"\u003e\u003ccode\u003eca412e3\u003c/code\u003e\u003c/a\u003e docs: sync the Latest changelog page with 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/640936fb29f7bdf5665d5b7f919783bb73e2f981\"\u003e\u003ccode\u003e640936f\u003c/code\u003e\u003c/a\u003e docs: note the dependency security work in 26.1.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.15.3 to 7.15.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.15.4\u003c/h2\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in the HTML report, a source file name containing a double quote (legal on POSIX) wasn’t escaped where it’s dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index and prev/next links, so it could close the attribute early and inject markup. Page URLs are now escaped. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix: the LCOV report wrote file names and other fields into its line-oriented records without neutralizing control characters. A measured file whose name contained a newline (legal on POSIX) could forge extra records, inflating the coverage seen by tools that read the report. Control characters in a field are now replaced. Thanks, \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003eRajath Mohare\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWheels are now provided for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.15.4\"\u003ecoverage 7.15.4\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.15.4\u003c/code\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/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.15.4 — 2026-08-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in the HTML report, a source file name containing a double quote (legal\non POSIX) wasn't escaped where it's dropped into the \u003ccode\u003ehref\u003c/code\u003e of the index\nand prev/next links, so it could close the attribute early and inject markup.\nPage URLs are now escaped. Thanks, \u003ccode\u003eRajath Mohare \u0026lt;pull 2227_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the LCOV report wrote file names and other fields into its\nline-oriented records without neutralizing control characters. A measured\nfile whose name contained a newline (legal on POSIX) could forge extra\nrecords, inflating the coverage seen by tools that read the report. Control\ncharacters in a field are now replaced. Thanks, \u003ccode\u003eRajath Mohare \u0026lt;pull 2226_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels are now provided for Python 3.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2226: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2226\"\u003ecoveragepy/coveragepy#2226\u003c/a\u003e\n.. _pull 2227: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2227\"\u003ecoveragepy/coveragepy#2227\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-15-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4c0e7ff425ecbb33e2b994b41118a71eb4e39021\"\u003e\u003ccode\u003e4c0e7ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.15.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/db4cc3216ca5bb436eba697aaa74d886e4ea82c8\"\u003e\u003ccode\u003edb4cc32\u003c/code\u003e\u003c/a\u003e docs: prep for 7.15.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c33085c3fcec4dd01fc3a0419c90de7ee6b869a7\"\u003e\u003ccode\u003ec33085c\u003c/code\u003e\u003c/a\u003e style: start gradual move to ruff 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/53a0fd51ba05047624baf58bf8f288d56185df93\"\u003e\u003ccode\u003e53a0fd5\u003c/code\u003e\u003c/a\u003e fix: neutralize control characters in lcov report fields (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2226\"\u003e#2226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b64d53dd6f113b68a19ac6c1b855e34bbebfad4e\"\u003e\u003ccode\u003eb64d53d\u003c/code\u003e\u003c/a\u003e build: make 3.15 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/53792ab496adf740a38d1f67e0162705b4d67c07\"\u003e\u003ccode\u003e53792ab\u003c/code\u003e\u003c/a\u003e build: show the python version for kits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f6b03c77ffb8d58b25950bae63d36b7a1c585a70\"\u003e\u003ccode\u003ef6b03c7\u003c/code\u003e\u003c/a\u003e chore: make upgrade_one package=cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d9b660ac2a6bc64a39c4a2e7f195bb6bd6f7af89\"\u003e\u003ccode\u003ed9b660a\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b128a3172ec0cc4d70398f663e56d0362f5de4ea\"\u003e\u003ccode\u003eb128a31\u003c/code\u003e\u003c/a\u003e docs: oops, move this entry to the correct place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a7a2c15669cc6e8fdb46e5012954c795a63e9a27\"\u003e\u003ccode\u003ea7a2c15\u003c/code\u003e\u003c/a\u003e fix: escape filename urls in html report href attributes (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2227\"\u003e#2227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.15.3...7.15.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 7.0.0 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize TaskResult in the Tasks panel to accommodate the storage mechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel’s kwargs column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize the TaskResult class for Tasks panel. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2444\"\u003edjango-commons/django-debug-toolbar#2444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.1.0...7.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via Django’s built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On older versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django’s boolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that can resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container network.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without parameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not find the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked before the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the Django version check in the SQL panel by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2403\"\u003edjango-commons/django-debug-toolbar#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix some small issues in docs/installation.rst by \u003ca href=\"https://github.com/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilence the MiddlewareMixin deprecation warning explicitly by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2416\"\u003edjango-commons/django-debug-toolbar#2416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tasks panel showing tasks queued during the request by \u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests by \u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2435\"\u003edjango-commons/django-debug-toolbar#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_toolbar_with_docker on runtimes with unrelated host address by \u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove selenium tests reliability in CI by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2438\"\u003edjango-commons/django-debug-toolbar#2438\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/leggewie\"\u003e\u003ccode\u003e@​leggewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2409\"\u003edjango-commons/django-debug-toolbar#2409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/onxxdatas\"\u003e\u003ccode\u003e@​onxxdatas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2407\"\u003edjango-commons/django-debug-toolbar#2407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/novucs\"\u003e\u003ccode\u003e@​novucs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2434\"\u003edjango-commons/django-debug-toolbar#2434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sanjays2402\"\u003e\u003ccode\u003e@​Sanjays2402\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2422\"\u003edjango-commons/django-debug-toolbar#2422\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.1 (2026-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSerialize \u003ccode\u003eTaskResult\u003c/code\u003e in the Tasks panel to accommodate the storage\nmechanism.\u003c/li\u003e\n\u003cli\u003eRemoved whitespace on Task panel's \u003ccode\u003ekwargs\u003c/code\u003e column.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-08-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a Tasks panel that shows tasks queued during the request via\nDjango's built-in tasks framework (\u003ccode\u003edjango.tasks\u003c/code\u003e, Django 6.0+). On\nolder versions of Django, the panel explains that upgrading is required.\u003c/li\u003e\n\u003cli\u003eFixed the Django version check in the SQL panel test suite for Django's\nboolean parameter handling.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e on Docker runtimes such as OrbStack that\ncan resolve \u003ccode\u003ehost.docker.internal\u003c/code\u003e to an address outside the container\nnetwork.\u003c/li\u003e\n\u003cli\u003eRestored the select and explain buttons for queries that run without\nparameters.\u003c/li\u003e\n\u003cli\u003eFixed the error shown when panel content fails to load, which could not\nfind the toolbar window inside the shadow root.\u003c/li\u003e\n\u003cli\u003eStopped the history panel buttons from submitting their form when clicked\nbefore the panel script has loaded, which navigated away from the page.\u003c/li\u003e\n\u003cli\u003eAdded support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f307de14d1a533273b6de7bd39579b043eb54a99\"\u003e\u003ccode\u003ef307de1\u003c/code\u003e\u003c/a\u003e Version 7.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/73951a4c517bafa5369228f2fca8306510f1cbf1\"\u003e\u003ccode\u003e73951a4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2439\"\u003e#2439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/678b687e0a30c2657dc21b1d859d1141098997a0\"\u003e\u003ccode\u003e678b687\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2442\"\u003e#2442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/7627683d89fc1c77bc2dc4550f15eede9a86cee6\"\u003e\u003ccode\u003e7627683\u003c/code\u003e\u003c/a\u003e Serialize the TaskResult class for Tasks panel. (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2444\"\u003e#2444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/a2d4260c8646ff552a0117068a624a91cd00b167\"\u003e\u003ccode\u003ea2d4260\u003c/code\u003e\u003c/a\u003e Version 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/d89606a1bfbe7e4ca17156f262ba2fc22050f253\"\u003e\u003ccode\u003ed89606a\u003c/code\u003e\u003c/a\u003e Improve selenium tests reliability in CI (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2438\"\u003e#2438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/e367e1b77eaf85e54c35985338945ae09caec58d\"\u003e\u003ccode\u003ee367e1b\u003c/code\u003e\u003c/a\u003e Fix show_toolbar_with_docker on runtimes with unrelated host address (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2422\"\u003e#2422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/49f4ef349a12a938c5cb7ef529f1f96e5ffb74b2\"\u003e\u003ccode\u003e49f4ef3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/3d3d0106c9a20e4deb0d4f9a63ca806338b8516b\"\u003e\u003ccode\u003e3d3d010\u003c/code\u003e\u003c/a\u003e Add support for Django 6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/f5717342b927db1fc085844762db3e9d76174c7c\"\u003e\u003ccode\u003ef571734\u003c/code\u003e\u003c/a\u003e Stop the history panel buttons from submitting their forms\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/compare/7.0.0...7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs[compatible-mypy]` from 6.0.7 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/django-stubs/releases\"\u003edjango-stubs[compatible-mypy]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis is the first Django 6.1 release 🎉\u003c/p\u003e\n\u003cp\u003eDjango 6.0 and 5.2 are now in partial support mode.\nDjango 5.1 and 5.0 support was dropped (techically they would still work, but we don't test them no more).\nPython 3.10 support was dropped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap Django 6.1 by \u003ca href=\"https://github.com/ngnpope\"\u003e\u003ccode\u003e@​ngnpope\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3563\"\u003etypeddjango/django-stubs#3563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependency django to v5.2.17 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3575\"\u003etypeddjango/django-stubs#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit through default manager by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3576\"\u003etypeddjango/django-stubs#3576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport custom arguments in queryset update methods by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3586\"\u003etypeddjango/django-stubs#3586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 6.1.0 by \u003ca href=\"https://github.com/sobolevn\"\u003e\u003ccode\u003e@​sobolevn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3589\"\u003etypeddjango/django-stubs#3589\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeedback is very welcome! 👍\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.9...6.1.0\"\u003ehttps://github.com/typeddjango/django-stubs/compare/6.0.9...6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e6.0.8\u003c/code\u003e was supposed to be the last \u003ccode\u003e6.0.x\u003c/code\u003e release, but we found several regressions that we wanted to fix.\nNow we are working on \u003ccode\u003e6.1.0\u003c/code\u003e release :)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDetect every generic stub class in the generic consistency test by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3572\"\u003etypeddjango/django-stubs#3572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't crash on a many-to-many through model that can't be resolved by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3571\"\u003etypeddjango/django-stubs#3571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.8...6.0.9\"\u003ehttps://github.com/typeddjango/django-stubs/compare/6.0.8...6.0.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.8\u003c/h2\u003e\n\u003cp\u003eThis is the last release with Django 6.0 full support.\nThe next release will be focused on Django 6.1 support with Django 6.0 partial support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003econtrib.gis\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3500\"\u003etypeddjango/django-stubs#3500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplicit M2M through models lose their \u003ccode\u003eobjects\u003c/code\u003e / \u003ccode\u003e_default_manager\u003c/code\u003e attributes by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3499\"\u003etypeddjango/django-stubs#3499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve dynamic manager methods via mypy's \u003ccode\u003efind_member\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3501\"\u003etypeddjango/django-stubs#3501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003edb.models\u003c/code\u003e, \u003ccode\u003ecore\u003c/code\u003e and \u003ccode\u003emigrations\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3504\"\u003etypeddjango/django-stubs#3504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow callables returning Choices type for Field.choices. by \u003ca href=\"https://github.com/felixxm\"\u003e\u003ccode\u003e@​felixxm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3506\"\u003etypeddjango/django-stubs#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003ecore\u003c/code\u003e, \u003ccode\u003eapps\u003c/code\u003e, \u003ccode\u003eurls\u003c/code\u003e and \u003ccode\u003eadmindocs\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3503\"\u003etypeddjango/django-stubs#3503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove type in \u003ccode\u003eforms\u003c/code\u003e and improve types of lazy regexes by \u003ca href=\"https://github.com/01xnikhil\"\u003e\u003ccode\u003e@​01xnikhil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3293\"\u003etypeddjango/django-stubs#3293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003edjango.tasks\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3512\"\u003etypeddjango/django-stubs#3512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd plugin support for \u003ccode\u003eapps.get_model()\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3511\"\u003etypeddjango/django-stubs#3511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in admin filters, utils and per-app admins by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3502\"\u003etypeddjango/django-stubs#3502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInvalidate mypy cache when \u003ccode\u003esettings.INSTALLED_APPS\u003c/code\u003e change and cache full config computation by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3514\"\u003etypeddjango/django-stubs#3514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark fullnames constants as Final by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3515\"\u003etypeddjango/django-stubs#3515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type arguments to generic references in \u003ccode\u003eutils\u003c/code\u003e and \u003ccode\u003etemplates\u003c/code\u003e by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3513\"\u003etypeddjango/django-stubs#3513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse mypy's \u003ccode\u003elookup_fully_qualified\u003c/code\u003e instead of custom symbol lookup by \u003ca href=\"https://github.com/UnknownPlatypus\"\u003e\u003ccode\u003e@​UnknownPlatypus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/pull/3519\"\u003etypeddjango/django-stubs#3519\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/typeddjango/django-stubs/commit/2ec3fd3ce48e7a92cbe09a114d512dcea50571f7\"\u003e\u003ccode\u003e2ec3fd3\u003c/code\u003e\u003c/a\u003e Version 6.1.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/5868773c9fa5ba236c2cc263799a02acc67f7c0b\"\u003e\u003ccode\u003e5868773\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.69.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3588\"\u003e#3588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e888491e34e5b9073f1c09eb84e91ed7ce36c775\"\u003e\u003ccode\u003ee888491\u003c/code\u003e\u003c/a\u003e Support custom arguments in queryset update methods (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/ffd15cac28c39690acd98c3f9af9370f9fadedce\"\u003e\u003ccode\u003effd15ca\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3583\"\u003e#3583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/1af6dcf52f19837fdc47b26350d351dea0a139c1\"\u003e\u003ccode\u003e1af6dcf\u003c/code\u003e\u003c/a\u003e Update int128/hide-comment-action action to v1.68.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/709e864c79e03239be2234457f59eb66ce69e3c7\"\u003e\u003ccode\u003e709e864\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.69 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/5da937c127b581501b5707b547d861b46d8af41c\"\u003e\u003ccode\u003e5da937c\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.68 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/7afd2da77ed93d0b3164ea4d203648a6c972f161\"\u003e\u003ccode\u003e7afd2da\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.67 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/07e22f2e4918163d1f3aa1137142cf281b5fbcb1\"\u003e\u003ccode\u003e07e22f2\u003c/code\u003e\u003c/a\u003e Explicit through default manager (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3576\"\u003e#3576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/db47c3b32275b6d6abef915303fd80fde3dd59da\"\u003e\u003ccode\u003edb47c3b\u003c/code\u003e\u003c/a\u003e Update dependency django to v5.2.17 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3575\"\u003e#3575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.7...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-upgrade` from 1.31.1 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-upgrade/blob/main/docs/changelog.rst\"\u003edjango-upgrade's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.32.0 (2026-08-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.15.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#681](https://github.com/adamchainz/django-upgrade/issues/681) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/681\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eutils_text \u0026lt;utils_text\u0026gt;\u003c/code\u003e fixer to rewrite \u003ccode\u003eunescape_entities()\u003c/code\u003e calls with \u003ccode\u003ehtml.unescape()\u003c/code\u003e.\nPreviously it incorrectly used \u003ccode\u003ehtml.escape()\u003c/code\u003e, which performs the inverse operation.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#684](https://github.com/adamchainz/django-upgrade/issues/684) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/684\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer crash on empty \u003ccode\u003eindex_together\u003c/code\u003e declarations.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#685](https://github.com/adamchainz/django-upgrade/issues/685) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/685\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to not add a duplicate \u003ccode\u003eindexes\u003c/code\u003e declaration when the existing one is not a list or tuple literal.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#686](https://github.com/adamchainz/django-upgrade/issues/686) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/686\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to add a missing comma when extending a multiline \u003ccode\u003eindexes\u003c/code\u003e list that has no trailing comma.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#687](https://github.com/adamchainz/django-upgrade/issues/687) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/687\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eindex_together \u0026lt;index_together\u0026gt;\u003c/code\u003e fixer to keep an empty \u003ccode\u003eindexes\u003c/code\u003e tuple a tuple when extending it with a single index.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#716](https://github.com/adamchainz/django-upgrade/issues/716) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/716\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003eformat_html \u0026lt;format_html\u0026gt;\u003c/code\u003e fixer to skip calls with a parenthesized argument, where removing the \u003ccode\u003e.format()\u003c/code\u003e call would create a tuple.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#717](https://github.com/adamchainz/django-upgrade/issues/717) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/717\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003enull_boolean_field \u0026lt;null_boolean_field\u0026gt;\u003c/code\u003e fixer to add a missing comma before \u003ccode\u003enull=True\u003c/code\u003e when the final argument contains commas within brackets.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#688](https://github.com/adamchainz/django-upgrade/issues/688) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/688\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix fixers that modify call arguments to not treat a comment inside otherwise empty parentheses as an argument, which made the :ref:\u003ccode\u003enull_boolean_field \u0026lt;null_boolean_field\u0026gt;\u003c/code\u003e fixer produce invalid syntax.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#718](https://github.com/adamchainz/django-upgrade/issues/718) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/718\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etest_http_headers \u0026lt;test_http_headers\u0026gt;\u003c/code\u003e fixer to avoid a double comma when the existing \u003ccode\u003eheaders=\u003c/code\u003e dict has a trailing comma.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#689](https://github.com/adamchainz/django-upgrade/issues/689) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/689\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etest_http_headers \u0026lt;test_http_headers\u0026gt;\u003c/code\u003e fixer to insert converted headers at the start of an existing \u003ccode\u003eheaders=\u003c/code\u003e dict.\nDjango gives \u003ccode\u003eheaders=\u003c/code\u003e entries precedence over \u003ccode\u003eHTTP_\u003c/code\u003e arguments, and the last duplicate key wins in a dict literal, so appending converted entries at the end previously flipped which value took effect.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#723](https://github.com/adamchainz/django-upgrade/issues/723) \u0026lt;https://github.com/adamchainz/django-upgrade/pull/723\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix :ref:\u003ccode\u003etestcase_databases \u0026lt;testcase_databases\u0026gt;\u003c/code\u003e fixer to rewrite \u003ccode\u003emulti_db = False\u003c/code\u003e to \u003ccode\u003edatabases = [\u0026quot;default\u0026quot;]\u003c/code\u003e rather than \u003ccode\u003edatabases = []\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/adamchainz/django-upgrade/commit/423ab5081e037d3c692113d654d49ea9e3ee0066\"\u003e\u003ccode\u003e423ab50\u003c/code\u003e\u003c/a\u003e Version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/7b1224a970289729eb50a1fffca04844a8c1ab1f\"\u003e\u003ccode\u003e7b1224a\u003c/code\u003e\u003c/a\u003e Tidy changelog (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/63607890eb3090bded91c6432b43948a1757bd1e\"\u003e\u003ccode\u003e6360789\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eforms_model_multiple_choice_field\u003c/code\u003e corrupting concatenated keys (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/02a46831ceb213421761f312e1368fa7b7e796d9\"\u003e\u003ccode\u003e02a4683\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003etestcase_databases\u003c/code\u003e mapping of \u003ccode\u003emulti_db = False\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/bc85eb958b63b752cbd7454d6378e51ca50d891d\"\u003e\u003ccode\u003ebc85eb9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eadmin_decorators\u003c/code\u003e hoisting values above their definitions (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/4eb5abf3734ba10c96dd53abdf98e50c78c4adae\"\u003e\u003ccode\u003e4eb5abf\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eadmin_register\u003c/code\u003e referencing models defined after the admin class (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/d782084a4fe43286d6b4b2d11676efad0a1356cb\"\u003e\u003ccode\u003ed782084\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003esettings_storages\u003c/code\u003e erasing settings referenced elsewhere (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/2f3eb7571f87ae8c62389ac8f977935f81fbe58e\"\u003e\u003ccode\u003e2f3eb75\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003etest_http_headers\u003c/code\u003e precedence when merging into \u003ccode\u003eheaders=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/d750615a98098ff0c44477041932a04089d5aa47\"\u003e\u003ccode\u003ed750615\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003estringagg\u003c/code\u003e moving import despite bare \u003ccode\u003eStringAgg\u003c/code\u003e references (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-upgrade/commit/49cb8b9c2297d329a8f858beb54fb34e7274830a\"\u003e\u003ccode\u003e49cb8b9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eutils_timezone\u003c/code\u003e matching aliased \u003ccode\u003eutc\u003c/code\u003e imports (\u003ca href=\"https://redirect.github.com/adamchainz/django-upgrade/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-upgrade/compare/1.31.1...1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThis is the first version to be based on DRF 3.18\u003c/li\u003e\n\u003cli\u003eThis is the last version to support \u003ccode\u003edjango-stubs\u003c/code\u003e 6.0.x - next release will require 6.1.x\u003c/li\u003e\n\u003cli\u003eThis is the last ver...\n\n_Description has been truncated_","html_url":"https://github.com/rl-institut/SustAgriTool/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2FSustAgriTool/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"3.4.0","new_version":"3.4.1","update_type":"patch","path":null,"pr_created_at":"2026-08-24T09:25:58.000Z","version_change":"3.4.0 → 3.4.1","issue":{"uuid":"5233154581","node_id":"PR_kwDOS9VYHs8AAAABAxtqTQ","number":66,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T09:11:09.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-24T09:25:58.000Z","updated_at":"2026-09-04T09:11:11.000Z","time_to_close":949511,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":20,"packages":[{"name":"django-allauth","old_version":"65.18.0","new_version":"65.19.1"},{"name":"django-anymail","old_version":"15.0","new_version":"15.1"},{"name":"django-crispy-forms","old_version":"2.6","new_version":"2.7","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.17.1","new_version":"3.18.0","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"drf-spectacular","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/tfranzel/drf-spectacular"},{"name":"flower","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/mher/flower"},{"name":"gunicorn","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hiredis","old_version":"3.4.0","new_version":"3.4.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"pillow","old_version":"12.2.0","new_version":"12.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"redis","old_version":"8.0.0","new_version":"8.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"coverage","old_version":"7.14.1","new_version":"7.15.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-debug-toolbar","old_version":"7.0.0","new_version":"7.1.1","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-stubs","old_version":"6.0.5","new_version":"6.1.0"},{"name":"djangorestframework-stubs","old_version":"3.17.0","new_version":"3.18.0","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"djlint","old_version":"1.39.2","new_version":"1.44.2","repository_url":"https://github.com/djlint/djLint"},{"name":"mypy","old_version":"2.1.0","new_version":"2.3.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.6.0","new_version":"4.6.2","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"9.1.0","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-django","old_version":"4.12.0","new_version":"4.14.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"ruff","old_version":"0.15.18","new_version":"0.16.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.18.0` | `65.19.1` |\n| [django-anymail[mailgun]](https://github.com/anymail/django-anymail) | `15.0` | `15.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.6` | `2.7` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.17.1` | `3.18.0` |\n| [drf-spectacular](https://github.com/tfranzel/drf-spectacular) | `0.29.0` | `0.30.0` |\n| [flower](https://github.com/mher/flower) | `2.0.1` | `2.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `26.0.0` | `26.1.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.4.0` | `3.4.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.2.0` | `12.3.0` |\n| [redis](https://github.com/redis/redis-py) | `8.0.0` | `8.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.14.1` | `7.15.4` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `7.0.0` | `7.1.1` |\n| [django-stubs[compatible-mypy]](https://github.com/typeddjango/django-stubs) | `6.0.5` | `6.1.0` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.17.0` | `3.18.0` |\n| [djlint](https://github.com/djlint/djLint) | `1.39.2` | `1.44.2` |\n| [mypy](https://github.com/python/mypy) | `2.1.0` | `2.3.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.6.0` | `4.6.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.1.0` | `9.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.12.0` | `4.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.16.4` |\n\n\nUpdates `django-allauth[mfa]` from 65.18.0 to 65.19.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-anymail[mailgun]` from 15.0 to 15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anymail/django-anymail/releases\"\u003edjango-anymail[mailgun]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://anymail.dev/en/stable/changelog/#v15-1\"\u003eChangelog\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/anymail/django-anymail/blob/main/CHANGELOG.rst\"\u003edjango-anymail[mailgun]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-07-30\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFixes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **Amazon SES, Brevo:** Fix ``InvalidMailer`` error about \u0026quot;Unknown options\u0026quot;\n  when used with Django 6.1 ``MAILERS`` setting.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePostmark:\u003c/strong\u003e Raise an unsupported feature error when \u003ccode\u003emerge_data\u003c/code\u003e or\n\u003ccode\u003emerge_global_data\u003c/code\u003e is used without a \u003ccode\u003etemplate_id\u003c/code\u003e. Anymail passes that\ndata to Postmark in its \u003ccode\u003eTemplateModel\u003c/code\u003e field, which is silently ignored\nwhen sending through a non-template API. (Thanks to \u003ccode\u003e@slinkymanbyday\u003c/code\u003e_ for\nreporting the issue and \u003ccode\u003e@Sanjays2402\u003c/code\u003e_ for the fix.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTest against prerelease versions of Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for ``fail_silently`` in Anymail's email backends is being phased out,\n  matching Django's deprecation of the feature. Anymail will issue a deprecation\n  warning when ``fail_silently`` is used. Support for it will be dropped in a\n  future release when Django 6.2 support is discontinued.\n\u003cp\u003eSee \u003ccode\u003eReplacing fail_silently \u0026amp;lt;https://docs.djangoproject.com/en/6.1/howto/mailers-migration/#migrating-to-mailers-fail-silently\u0026amp;gt;\u003c/code\u003e_\nin Django's documentation for recommendations.\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/anymail/django-anymail/commit/8c40cc46f6a7aa308c5cabe99c0ea13733b5e079\"\u003e\u003ccode\u003e8c40cc4\u003c/code\u003e\u003c/a\u003e Release 15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/7e8b81bab3465b84ea2374814211a435cb1255ad\"\u003e\u003ccode\u003e7e8b81b\u003c/code\u003e\u003c/a\u003e Postmark: Handle merge_data without template_id as unsupported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/d973c84e317554d4047c8998721060be6af41381\"\u003e\u003ccode\u003ed973c84\u003c/code\u003e\u003c/a\u003e Update URLs to Mailjet's documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/16719488929c979058be55dec598caa20194eba5\"\u003e\u003ccode\u003e1671948\u003c/code\u003e\u003c/a\u003e Update readme for Django 6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/0dfc0aa6afe487105bc381f90f1baf4be5776768\"\u003e\u003ccode\u003e0dfc0aa\u003c/code\u003e\u003c/a\u003e Add 'docs-watch' tox environment for sphinx-autobuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/232477aecf5b994b98697ac2ec3fbbb183d6973f\"\u003e\u003ccode\u003e232477a\u003c/code\u003e\u003c/a\u003e Deprecate fail_silently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/e56745200b3381a3266891e5cb58630c347d8ba5\"\u003e\u003ccode\u003ee567452\u003c/code\u003e\u003c/a\u003e Improve support for MAILERS configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/e670d788ea2f1539005dd3e93a324b025c88be89\"\u003e\u003ccode\u003ee670d78\u003c/code\u003e\u003c/a\u003e Amazon SES, Brevo: Fix compatibility with Django 6.1 MAILERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/15b57e283ac0c964b4832997b669ba99bd25f1a3\"\u003e\u003ccode\u003e15b57e2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.1 pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anymail/django-anymail/commit/171fa385f9a49bf6720217d8f6b29502e9c262ef\"\u003e\u003ccode\u003e171fa38\u003c/code\u003e\u003c/a\u003e Change black and isort to target Python 3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anymail/django-anymail/compare/v15.0...v15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.6 to 2.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Django 6.1.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7 (2026-07-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Django 6.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7fbb538595dde3a4598b4403e60ecca0905fa74\"\u003e\u003ccode\u003ee7fbb53\u003c/code\u003e\u003c/a\u003e Release 2.7. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1438\"\u003e#1438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/9d6b32129dea4c89caa87218a11192503646b9da\"\u003e\u003ccode\u003e9d6b321\u003c/code\u003e\u003c/a\u003e Bumped github actions versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/974b5b7390c0b11698c348128b164990cb6f044b\"\u003e\u003ccode\u003e974b5b7\u003c/code\u003e\u003c/a\u003e Bumped RTD OS and Python versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/5218268f520ca19c665e6f02a49df647eb977af6\"\u003e\u003ccode\u003e5218268\u003c/code\u003e\u003c/a\u003e Confirmed support for Django 6.1. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/847873cf09f0ee96beb38273190860008a6712dd\"\u003e\u003ccode\u003e847873c\u003c/code\u003e\u003c/a\u003e docs: replace 'basestring' with 'str' (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1433\"\u003e#1433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.6...2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.17.1 to 3.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Django 4.2, Django 5.0 and Django 5.1 by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9899\"\u003eencode/django-rest-framework#9899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange errors for list serializers (\u003ccode\u003emany=True\u003c/code\u003e) to dict format by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9837\"\u003eencode/django-rest-framework#9837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eunaccent\u003c/code\u003e to \u003ccode\u003eSearchFilter\u003c/code\u003e by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9385\"\u003eencode/django-rest-framework#9385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Django 6.1 by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10003\"\u003eencode/django-rest-framework#10003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@throttle_scope\u003c/code\u003e function based view decorator by \u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enulls_distinct\u003c/code\u003e support to \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003echoices\u003c/code\u003e param for non-editable fields by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9929\"\u003eencode/django-rest-framework#9929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove cursor pagination template accessibility in browsable API by \u003ca href=\"https://github.com/kosbemrunal\"\u003e\u003ccode\u003e@​kosbemrunal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9905\"\u003eencode/django-rest-framework#9905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix partial form data updates involving \u003ccode\u003eListField\u003c/code\u003e by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9902\"\u003eencode/django-rest-framework#9902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash due to browsable API extra action permissions by \u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle unhashable \u003ccode\u003eBooleanField\u003c/code\u003e representation value by \u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAPI schema for zero numeric bounds on ListField children by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003ecc_delim_re usage\u003c/code\u003e with \u003ccode\u003esplit_header_value\u003c/code\u003e for Django 6.1+ compatibility by \u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eset_rollback\u003c/code\u003e to only rollback initialized connections by \u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DictField HTML input returning empty dict for missing fields by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise clear error for unsupported unique-together list updates by \u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9981\"\u003eencode/django-rest-framework#9981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrepare release 3.18.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/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\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/Im-Bilal\"\u003e\u003ccode\u003e@​Im-Bilal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9967\"\u003eencode/django-rest-framework#9967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dlfoerster\"\u003e\u003ccode\u003e@​dlfoerster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9934\"\u003eencode/django-rest-framework#9934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emfpdlzj\"\u003e\u003ccode\u003e@​emfpdlzj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9973\"\u003eencode/django-rest-framework#9973\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zainnadeem786\"\u003e\u003ccode\u003e@​zainnadeem786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9977\"\u003eencode/django-rest-framework#9977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laymonage\"\u003e\u003ccode\u003e@​laymonage\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9978\"\u003eencode/django-rest-framework#9978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harshitkandpal\"\u003e\u003ccode\u003e@​harshitkandpal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9993\"\u003eencode/django-rest-framework#9993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/udit-prabhakar\"\u003e\u003ccode\u003e@​udit-prabhakar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9962\"\u003eencode/django-rest-framework#9962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sai09111995\"\u003e\u003ccode\u003e@​sai09111995\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9884\"\u003eencode/django-rest-framework#9884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d-ryzhykau\"\u003e\u003ccode\u003e@​d-ryzhykau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9963\"\u003eencode/django-rest-framework#9963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Elkasitu\"\u003e\u003ccode\u003e@​Elkasitu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8494\"\u003eencode/django-rest-framework#8494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vishalanandl177\"\u003e\u003ccode\u003e@​vishalanandl177\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10002\"\u003eencode/django-rest-framework#10002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdetaeye\"\u003e\u003ccode\u003e@​jdetaeye\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9599\"\u003eencode/django-rest-framework#9599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9891\"\u003eencode/django-rest-framework#9891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mag123c\"\u003e\u003ccode\u003e@​mag123c\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9866\"\u003eencode/django-rest-framework#9866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anurag12anu\"\u003e\u003ccode\u003e@​anurag12anu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9814\"\u003eencode/django-rest-framework#9814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/10015\"\u003eencode/django-rest-framework#10015\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/11875a38f483cea69d8ef2fd9ede6b96fb602ec4\"\u003e\u003ccode\u003e11875a3\u003c/code\u003e\u003c/a\u003e Prepare release 3.18.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/d346a8c3c92a36fdb462c992331e238d0a737305\"\u003e\u003ccode\u003ed346a8c\u003c/code\u003e\u003c/a\u003e Add note about Browsable API simulating \u003ccode\u003ePOST\u003c/code\u003e in documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9814\"\u003e#9814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/80d535ddf08226020a9f44ca57f6eb1bbd91fa6a\"\u003e\u003ccode\u003e80d535d\u003c/code\u003e\u003c/a\u003e Fix GHA workflow for preparing release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/aa1876b8b6009a618e6241f91e2c2d6dfbacb5d9\"\u003e\u003ccode\u003eaa1876b\u003c/code\u003e\u003c/a\u003e Update fields.md explaining how the \u003ccode\u003esource\u003c/code\u003e argument affects `.validated_dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/000bb334f7995a972e700f81fbdbd50a80f38985\"\u003e\u003ccode\u003e000bb33\u003c/code\u003e\u003c/a\u003e Add nulls_distinct support to UniqueTogetherValidator (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9866\"\u003e#9866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7508e0cf122d5250a2cba824a3c537a288acb489\"\u003e\u003ccode\u003e7508e0c\u003c/code\u003e\u003c/a\u003e Raise clear error for unsupported list update validation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9981\"\u003e#9981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/69d1cd7f1322060397b7f747d199e3926f5d297b\"\u003e\u003ccode\u003e69d1cd7\u003c/code\u003e\u003c/a\u003e Fix DictField HTML input returning empty dict for missing fields (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9891\"\u003e#9891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/bbc62aca6f67a2a7fe0427a768973f5d9f143c58\"\u003e\u003ccode\u003ebbc62ac\u003c/code\u003e\u003c/a\u003e Update Django 6.1 dependency to stable release. (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f78043440a7884936232fdffffb68adcdbb3b272\"\u003e\u003ccode\u003ef780434\u003c/code\u003e\u003c/a\u003e Add GHA workflow to prepare a release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/dc027d2bb41c3858fc2fc95bf2b04b33f0cdc5be\"\u003e\u003ccode\u003edc027d2\u003c/code\u003e\u003c/a\u003e set_rollback should only rollback initialized connections (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9599\"\u003e#9599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-spectacular` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tfranzel/drf-spectacular/releases\"\u003edrf-spectacular's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003cp\u003eAfter working through the backlog for several week, we are finally in a comfortable place again. Thank you to all contributors and users that waited patiently for me the catch up. It does not include all the PRs that were opened, but imho the most critical ones.\u003c/p\u003e\n\u003cp\u003eThis release includes many small improvement, a few bug fixes, updates to the test suite and a renovated test matrix. Some minor schema corrections are to be expected, but nothing drastic. It is mostly fixing small inconsistencies and improving corner cases.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression introduced in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1450\"\u003e#1450\u003c/a\u003e by \u003ca href=\"https://github.com/hoefling\"\u003e\u003ccode\u003e@​hoefling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1469\"\u003etfranzel/drf-spectacular#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dependency definition for Django 5.2 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1487\"\u003etfranzel/drf-spectacular#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for Django 6.0 and and DRF 3.17 by \u003ca href=\"https://github.com/vgrozdanic\"\u003e\u003ccode\u003e@​vgrozdanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1496\"\u003etfranzel/drf-spectacular#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Support for unsigned integers uint16, uint32 and uint64 by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1483\"\u003etfranzel/drf-spectacular#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement x-spec-enum-id for type hint Choices. by \u003ca href=\"https://github.com/noamkush\"\u003e\u003ccode\u003e@​noamkush\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1486\"\u003etfranzel/drf-spectacular#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarifies Docs in Customizations.rst by \u003ca href=\"https://github.com/APCBoston\"\u003e\u003ccode\u003e@​APCBoston\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1489\"\u003etfranzel/drf-spectacular#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd setting to disable docstring extraction by \u003ca href=\"https://github.com/philipstarkey\"\u003e\u003ccode\u003e@​philipstarkey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1491\"\u003etfranzel/drf-spectacular#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for polymorphic built-in drf support by \u003ca href=\"https://github.com/mastacheata\"\u003e\u003ccode\u003e@​mastacheata\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1490\"\u003etfranzel/drf-spectacular#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003edjango-rest-knox\u003c/code\u003e support by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1503\"\u003etfranzel/drf-spectacular#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd help text to spectacular management command arguments \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1175\"\u003e#1175\u003c/a\u003e by \u003ca href=\"https://github.com/jbbqqf\"\u003e\u003ccode\u003e@​jbbqqf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1502\"\u003etfranzel/drf-spectacular#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echange conflicting license field for 3.8 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1504\"\u003etfranzel/drf-spectacular#1504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1438 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1505\"\u003etfranzel/drf-spectacular#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd blueprint for django-rest-knox by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1506\"\u003etfranzel/drf-spectacular#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1499 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1511\"\u003etfranzel/drf-spectacular#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType hint build_bearer_security_scheme_object by \u003ca href=\"https://github.com/johnthagen\"\u003e\u003ccode\u003e@​johnthagen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1509\"\u003etfranzel/drf-spectacular#1509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHousekeeping by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1512\"\u003etfranzel/drf-spectacular#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePr1501 by \u003ca href=\"https://github.com/tfranzel\"\u003e\u003ccode\u003e@​tfranzel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1514\"\u003etfranzel/drf-spectacular#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nullable FileField response schema when blank=True (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1493\"\u003e#1493\u003c/a\u003e) by \u003ca href=\"https://github.com/mojtabasohrabi\"\u003e\u003ccode\u003e@​mojtabasohrabi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1501\"\u003etfranzel/drf-spectacular#1501\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/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1487\"\u003etfranzel/drf-spectacular#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vgrozdanic\"\u003e\u003ccode\u003e@​vgrozdanic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1496\"\u003etfranzel/drf-spectacular#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/noamkush\"\u003e\u003ccode\u003e@​noamkush\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1486\"\u003etfranzel/drf-spectacular#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/APCBoston\"\u003e\u003ccode\u003e@​APCBoston\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1489\"\u003etfranzel/drf-spectacular#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/philipstarkey\"\u003e\u003ccode\u003e@​philipstarkey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1491\"\u003etfranzel/drf-spectacular#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mastacheata\"\u003e\u003ccode\u003e@​mastacheata\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1490\"\u003etfranzel/drf-spectacular#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jbbqqf\"\u003e\u003ccode\u003e@​jbbqqf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1502\"\u003etfranzel/drf-spectacular#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mojtabasohrabi\"\u003e\u003ccode\u003e@​mojtabasohrabi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/pull/1501\"\u003etfranzel/drf-spectacular#1501\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.0\"\u003ehttps://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.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/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst\"\u003edrf-spectacular's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0 (2026-07-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAS 3.2 schema for validation \u0026amp; test\u003c/li\u003e\n\u003cli\u003eType hint build_bearer_security_scheme_object (\u003ccode\u003e[#1509](https://github.com/tfranzel/drf-spectacular/issues/1509) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1509\u0026gt;\u003c/code\u003e_) [johnthagen]\u003c/li\u003e\n\u003cli\u003eFix formatted CharField allow_blank handling (\u003ccode\u003e[#1511](https://github.com/tfranzel/drf-spectacular/issues/1511) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1511\u0026gt;\u003c/code\u003e\u003cem\u003e, (\u003ccode\u003e[#1499](https://github.com/tfranzel/drf-spectacular/issues/1499) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1499\u0026gt;\u003c/code\u003e\u003c/em\u003e)) [Luciano de la Iglesia]\u003c/li\u003e\n\u003cli\u003eConsider allOf anyOf with nullable on OAS3.1 \u003ccode\u003e[#1480](https://github.com/tfranzel/drf-spectacular/issues/1480) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1480\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eProper handling for OAS 3.2\u003c/li\u003e\n\u003cli\u003efix modification of user-provided schematas \u003ccode\u003e[#1500](https://github.com/tfranzel/drf-spectacular/issues/1500) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1500\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003erelax contraint on oneOf null case with OAS3.1 \u003ccode\u003e[#1480](https://github.com/tfranzel/drf-spectacular/issues/1480) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1480\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eAdd blueprint for django-rest-knox (\u003ccode\u003e[#1506](https://github.com/tfranzel/drf-spectacular/issues/1506) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1506\u0026gt;\u003c/code\u003e_) [johnthagen]\u003c/li\u003e\n\u003cli\u003eMitigate GeneratedField lost arguments and special case for DecimalField \u003ccode\u003e[#1166](https://github.com/tfranzel/drf-spectacular/issues/1166) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1166\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eWebhook explicit operationId (\u003ccode\u003e[#1505](https://github.com/tfranzel/drf-spectacular/issues/1505) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1505\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003echange conflicting license field for 3.8 (\u003ccode\u003e[#1504](https://github.com/tfranzel/drf-spectacular/issues/1504) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1504\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocument django-rest-knox support [johnthagen]\u003c/li\u003e\n\u003cli\u003eadd help text to spectacular management command arguments \u003ccode\u003e[#1175](https://github.com/tfranzel/drf-spectacular/issues/1175) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1175\u0026gt;\u003c/code\u003e_ [Jean-Baptiste Braun]\u003c/li\u003e\n\u003cli\u003eMark FileField as nullable in response when not required \u003ccode\u003e[#1493](https://github.com/tfranzel/drf-spectacular/issues/1493) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1493\u0026gt;\u003c/code\u003e_ [mojtaba sohrabi]\u003c/li\u003e\n\u003cli\u003eExtend Choices hint fix with generated label description \u003ccode\u003e[#1486](https://github.com/tfranzel/drf-spectacular/issues/1486) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1486\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eSuppress py\u0026lt;=3.14 deprecation warning \u003ccode\u003e[#1497](https://github.com/tfranzel/drf-spectacular/issues/1497) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1497\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eRemove ancient DRF3.11 and Django2.2 due to contrib packages failing\u003c/li\u003e\n\u003cli\u003efeat: add support for django 6.0 and and drf 3.17 [Vjeran Grozdanic]\u003c/li\u003e\n\u003cli\u003eAdd setting to disable docstring extraction [Phil Starkey]\u003c/li\u003e\n\u003cli\u003efeat: add support for polymorphic built-in drf support [Benedikt Bauer]\u003c/li\u003e\n\u003cli\u003eClarifies post-processing hooks [Andy Piltser-Cowan]\u003c/li\u003e\n\u003cli\u003eClarifies customizations step 5 [Andy Piltser-Cowan]\u003c/li\u003e\n\u003cli\u003eFix dependency definition for Django 5.2 [Ülgen Sarıkavak]\u003c/li\u003e\n\u003cli\u003eImplement x-spec-enum-id for type hint Choices. [Noam Kushinsky]\u003c/li\u003e\n\u003cli\u003eAdd Support for unsigned integers uint16, uint32 and uint64 [Nicolas Delaby]\u003c/li\u003e\n\u003cli\u003eFix regression introduced in \u003ccode\u003e[#1450](https://github.com/tfranzel/drf-spectacular/issues/1450) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1450\u0026gt;\u003c/code\u003e_ (\u003ccode\u003e[#1469](https://github.com/tfranzel/drf-spectacular/issues/1469) \u0026lt;https://github.com/tfranzel/drf-spectacular/issues/1469\u0026gt;\u003c/code\u003e_) [Oleg Höfling]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBreaking changes / important additions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMany small improvement, bug fixes, updates to the test suite and renovated test matrix. Some minor schema corrections are to be expected, but nothing drastic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/1a5c44a15b2d06744f49285f1f58992f938a05fa\"\u003e\u003ccode\u003e1a5c44a\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/6ba553fc827613d7b36efc9d9f53043e4a2e5443\"\u003e\u003ccode\u003e6ba553f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1514\"\u003e#1514\u003c/a\u003e from tfranzel/pr1501\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d4787a4e2ef0ff4b7c6a72fe3dddf1ea8e8a963c\"\u003e\u003ccode\u003ed4787a4\u003c/code\u003e\u003c/a\u003e Adapt FileField null handling \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d8679422975c68bc3a2c97c278957ec043d915c1\"\u003e\u003ccode\u003ed867942\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1512\"\u003e#1512\u003c/a\u003e from tfranzel/housekeeping26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/5685cf8b731f9a93d9c66003ac2569d4ef7540a8\"\u003e\u003ccode\u003e5685cf8\u003c/code\u003e\u003c/a\u003e Add OAS 3.2 schema for validation \u0026amp; test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/9fa6f7c1f8d99ef14d9dfa11b89f432ba370242f\"\u003e\u003ccode\u003e9fa6f7c\u003c/code\u003e\u003c/a\u003e minor cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/69033ea1e371fb254731c9e9164fd403ace3c5d4\"\u003e\u003ccode\u003e69033ea\u003c/code\u003e\u003c/a\u003e update linting version due to misleading security warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/d9e0de6717c9953b3e9c66da6a5bc6aefb714827\"\u003e\u003ccode\u003ed9e0de6\u003c/code\u003e\u003c/a\u003e Type hint build_bearer_security_scheme_object (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1509\"\u003e#1509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/9b18b302b697ba1a5e86271a7e4d090a5995cc21\"\u003e\u003ccode\u003e9b18b30\u003c/code\u003e\u003c/a\u003e Pr1499 (\u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1511\"\u003e#1511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tfranzel/drf-spectacular/commit/6e3c72ea5df8e8452a2b8c3e792a7cab23814446\"\u003e\u003ccode\u003e6e3c72e\u003c/code\u003e\u003c/a\u003e Consider allOf anyOf with nullable on OAS3.1 \u003ca href=\"https://redirect.github.com/tfranzel/drf-spectacular/issues/1480\"\u003e#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flower` from 2.0.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mher/flower/releases\"\u003eflower's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the GitLab authentication handler name by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented database filename by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the documented max tasks default by \u003ca href=\"https://github.com/masahiro331\"\u003e\u003ccode\u003e@​masahiro331\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/mher/flower/issues/1415\"\u003e#1415\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/mher/flower/blob/v2.1.0/CHANGELOG.md\"\u003eflower's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlower 2.1.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded read-only mode for the UI and API \u003ca href=\"https://redirect.github.com/mher/flower/issues/1468\"\u003e#1468\u003c/a\u003e by \u003ca href=\"https://github.com/MrEarle\"\u003e\u003ccode\u003e@​MrEarle\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated the UI with a responsive design.\u003c/li\u003e\n\u003cli\u003eAdded persistent dark mode with light and system theme options.\u003c/li\u003e\n\u003cli\u003eAdded a browser favicon \u003ca href=\"https://redirect.github.com/mher/flower/issues/1502\"\u003e#1502\u003c/a\u003e by \u003ca href=\"https://github.com/rolfws\"\u003e\u003ccode\u003e@​rolfws\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved task search with boolean operators and field filters.\u003c/li\u003e\n\u003cli\u003ePreserved task-table preferences across visits \u003ca href=\"https://redirect.github.com/mher/flower/issues/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/fretman92\"\u003e\u003ccode\u003e@​fretman92\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded TLS support for Redis Sentinel \u003ca href=\"https://redirect.github.com/mher/flower/issues/1327\"\u003e#1327\u003c/a\u003e by \u003ca href=\"https://github.com/cyberjunk\"\u003e\u003ccode\u003e@​cyberjunk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded AMQPS support for RabbitMQ connections by \u003ca href=\"https://github.com/borland667\"\u003e\u003ccode\u003e@​borland667\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdated and auto-provisioned the Grafana dashboard.\u003c/li\u003e\n\u003cli\u003eEnabled API access in the Docker Compose demo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance and reliability\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved blocking broker and control operations off the I/O loop.\u003c/li\u003e\n\u003cli\u003eMade Redis queue inspection asynchronous and pipelined.\u003c/li\u003e\n\u003cli\u003ePrevented duplicate worker inspections.\u003c/li\u003e\n\u003cli\u003eFixed broker connection leaks \u003ca href=\"https://redirect.github.com/mher/flower/issues/1490\"\u003e#1490\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePurged stale offline-worker Prometheus metrics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1128\"\u003e#1128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePersisted dashboard counters across restarts \u003ca href=\"https://redirect.github.com/mher/flower/issues/787\"\u003e#787\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved handling of missing custom configuration files.\u003c/li\u003e\n\u003cli\u003eFixed startup banner output when using a dynamic port \u003ca href=\"https://redirect.github.com/mher/flower/issues/1449\"\u003e#1449\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker active-task totals when counts are null \u003ca href=\"https://redirect.github.com/mher/flower/issues/1511\"\u003e#1511\u003c/a\u003e by \u003ca href=\"https://github.com/M4RC0Sx\"\u003e\u003ccode\u003e@​M4RC0Sx\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed undefined worker pool grow and shrink values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1324\"\u003e#1324\u003c/a\u003e by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Redis SSL configurations \u003ca href=\"https://redirect.github.com/mher/flower/issues/1177\"\u003e#1177\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed percent-encoded IPv6 broker addresses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eStopped exposing broker alternate URLs in worker statistics \u003ca href=\"https://redirect.github.com/mher/flower/issues/1512\"\u003e#1512\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed broker page rendering when queue inspection fails \u003ca href=\"https://redirect.github.com/mher/flower/issues/1501\"\u003e#1501\u003c/a\u003e by \u003ca href=\"https://github.com/alexei\"\u003e\u003ccode\u003e@​alexei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed autoscaling response interpolation \u003ca href=\"https://redirect.github.com/mher/flower/issues/1427\"\u003e#1427\u003c/a\u003e by \u003ca href=\"https://github.com/funkyrailroad\"\u003e\u003ccode\u003e@​funkyrailroad\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImproved GitHub OAuth errors when email access is unavailable \u003ca href=\"https://redirect.github.com/mher/flower/issues/1486\"\u003e#1486\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented authentication failures while rendering error pages \u003ca href=\"https://redirect.github.com/mher/flower/issues/1268\"\u003e#1268\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mher/flower/issues/1499\"\u003e#1499\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task search for non-string values \u003ca href=\"https://redirect.github.com/mher/flower/issues/1401\"\u003e#1401\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed task state filters to require the state prefix \u003ca href=\"https://redirect.github.com/mher/flower/issues/1516\"\u003e#1516\u003c/a\u003e by \u003ca href=\"https://github.com/AleksaMCode\"\u003e\u003ccode\u003e@​AleksaMCode\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed worker names in timeout and rate-limit error responses \u003ca href=\"https://redirect.github.com/mher/flower/issues/1506\"\u003e#1506\u003c/a\u003e by \u003ca href=\"https://github.com/phanky1\"\u003e\u003ccode\u003e@​phanky1\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocumented custom authentication providers \u003ca href=\"https://redirect.github.com/mher/flower/issues/1344\"\u003e#1344\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the GitLab authentication handler name \u003ca href=\"https://redirect.github.com/mher/flower/issues/1325\"\u003e#1325\u003c/a\u003e by \u003ca href=\"https://github.com/Saluev\"\u003e\u003ccode\u003e@​Saluev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the persistent database CLI example \u003ca href=\"https://redirect.github.com/mher/flower/issues/1326\"\u003e#1326\u003c/a\u003e by \u003ca href=\"https://github.com/hatamiarash7\"\u003e\u003ccode\u003e@​hatamiarash7\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed the Grafana example URL \u003ca href=\"https://redirect.github.com/mher/flower/issues/1345\"\u003e#1345\u003c/a\u003e by \u003ca href=\"https://github.com/NiclasvanEyk\"\u003e\u003ccode\u003e@​NiclasvanEyk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the nginx reverse-proxy example by \u003ca href=\"https://github.com/titovanton\"\u003e\u003ccode\u003e@​titovanton\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded the GitHub repository link to the documentation by \u003ca href=\"https://github.com/PamelaM\"\u003e\u003ccode\u003e@​PamelaM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCorrected the documented database filename \u003ca href=\"https://redirect.github.com/mher/flower/issues/1494\"\u003e#1494\u003c/a\u003e by \u003ca href=\"https://github.com/WilliamDEdwards\"\u003e\u003ccode\u003e@​WilliamDEdwards\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/mher/flower/commit/3597bd1a94280cb3a3f2cbe53d0b6616f56cbde8\"\u003e\u003ccode\u003e3597bd1\u003c/code\u003e\u003c/a\u003e Set release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/d083f7317e4e273ff62de59082b89ce390cecf50\"\u003e\u003ccode\u003ed083f73\u003c/code\u003e\u003c/a\u003e Update documentation for 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b58869bcdcceb46d37d806fee8698fefd9d94bd9\"\u003e\u003ccode\u003eb58869b\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/e6cf8ef78776098bf8d3f1674056fc00dd62e388\"\u003e\u003ccode\u003ee6cf8ef\u003c/code\u003e\u003c/a\u003e Add Python 3.13 and 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/8ecede927b87e49ddb2856fbf61f7577d3c87273\"\u003e\u003ccode\u003e8ecede9\u003c/code\u003e\u003c/a\u003e Document custom authentication providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/00d310bb92914a21318052aa4ed02a996a95ca00\"\u003e\u003ccode\u003e00d310b\u003c/code\u003e\u003c/a\u003e Persist dashboard counters across restarts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/0a5116087085596a466caee4caa473da1a8b8394\"\u003e\u003ccode\u003e0a51160\u003c/code\u003e\u003c/a\u003e Purge offline workers from metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/72a09c8795d29b4a8e042285bff4e9ac2b7afda4\"\u003e\u003ccode\u003e72a09c8\u003c/code\u003e\u003c/a\u003e Prevent duplicate worker inspections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/17ead90a68a2eec82be3e03c9f0350f02ddc60dd\"\u003e\u003ccode\u003e17ead90\u003c/code\u003e\u003c/a\u003e Make Redis queue inspection non-blocking\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mher/flower/commit/b11ddcb2175c47ac0001b3744d4e3bad41bc6ba4\"\u003e\u003ccode\u003eb11ddcb\u003c/code\u003e\u003c/a\u003e Update blocking operation handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mher/flower/compare/v2.0.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 26.0.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egunicorn 26.1.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGlob patterns in \u003ccode\u003ereload_extra_files\u003c/code\u003e\u003c/strong\u003e: entries containing \u003ccode\u003e*\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e or \u003ccode\u003e[\u003c/code\u003e\nare treated as patterns, so \u003ccode\u003eui/*/config.json\u003c/code\u003e watches every view's config\nwithout listing them one by one. Patterns are re-expanded on every reload\ncheck rather than once at startup, so a file created later starts being\nwatched without restarting gunicorn, and \u003ccode\u003e**\u003c/code\u003e recurses. A pattern matching\nnothing warns instead of failing, since with live expansion it may match later\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/1643\"\u003e#1643\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3662\"\u003e#3662\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDependency floors raised past known advisories\u003c/strong\u003e: every declared floor was\nchecked against the advisory database. \u003ccode\u003etornado\u003c/code\u003e, \u003ccode\u003eh2\u003c/code\u003e, \u003ccode\u003esetuptools\u003c/code\u003e and\n\u003ccode\u003epymdown-extensions\u003c/code\u003e permitted vulnerable versions and now require the first\nclean release; \u003ccode\u003epytest\u003c/code\u003e and \u003ccode\u003ehttpx\u003c/code\u003e were unpinned and now carry floors. The\n\u003ccode\u003etornado\u003c/code\u003e example pinned \u003ccode\u003etornado\u0026lt;6\u003c/code\u003e, which was both the source of several\nadvisories and older than the \u003ccode\u003e\u0026gt;=6.5.0\u003c/code\u003e the tornado worker needs, so the\nexample could not run as pinned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSIGHUP did not reload the logger configuration\u003c/strong\u003e: \u003ccode\u003eArbiter.reload()\u003c/code\u003e\nre-read the configuration file but kept using the logger built at startup,\ncalling only \u003ccode\u003ereopen_files()\u003c/code\u003e on its existing handlers. Changes to\n\u003ccode\u003elogconfig\u003c/code\u003e, \u003ccode\u003elogconfig_dict\u003c/code\u003e, \u003ccode\u003elogconfig_json\u003c/code\u003e and \u003ccode\u003eloglevel\u003c/code\u003e were ignored\nuntil a full restart, which in containers meant replacing the pod. The\nexisting logger now re-runs its setup on reload, so new handlers, formats\nand levels take effect while the process identity and its listeners are\npreserved, and re-running the setup no longer stacks duplicate syslog\nhandlers. An invalid log configuration on reload is not fatal either: the\nerror is reported on stderr, the previous working configuration is restored\nand the master keeps running with it\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3353\"\u003e#3353\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTruncated chunked bodies accepted\u003c/strong\u003e: RFC 9112 section 7.1.2 ends a chunked\nbody with \u003ccode\u003e0 CRLF CRLF\u003c/code\u003e, the second CRLF being the mandatory empty trailer\nsection. \u003ccode\u003eChunkedReader.parse_chunk_size()\u003c/code\u003e swallowed the \u003ccode\u003eNoMoreData\u003c/code\u003e raised\nwhile scanning for it, so a body cut short right after the last chunk line was\ntreated as complete instead of rejected. It now raises\n\u003ccode\u003eChunkMissingTerminator\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3382\"\u003e#3382\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3685\"\u003e#3685\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e--spew\u003c/code\u003e crashed on dynamically generated code\u003c/strong\u003e: the trace hook indexed the\n2-tuple returned by \u003ccode\u003einspect.getsourcelines()\u003c/code\u003e by line number rather than\nindexing the list of lines, so a frame with no \u003ccode\u003e__file__\u003c/code\u003e raised\n\u003ccode\u003eAttributeError: 'int' object has no attribute 'rstrip'\u003c/code\u003e on line 1 and\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/benoitc/gunicorn/commit/71b59a75820dd4a762dc42a3280124168b4e44a8\"\u003e\u003ccode\u003e71b59a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3698\"\u003e#3698\u003c/a\u003e from benoitc/fix/docker-health-check-readerror\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/48287de8d8360825c85ac981ddfe9c80dba3b418\"\u003e\u003ccode\u003e48287de\u003c/code\u003e\u003c/a\u003e test: catch every transport error in the docker health check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3110e8c37f716ca0ed63ca7f80c7c9ea0fbbdd50\"\u003e\u003ccode\u003e3110e8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3696\"\u003e#3696\u003c/a\u003e from benoitc/docs/roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cc56c410b7103c1f2b877279f81cb3a14705315a\"\u003e\u003ccode\u003ecc56c41\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3693\"\u003e#3693\u003c/a\u003e from benoitc/release/26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5cf1f1651a40fa36afe13fde623e3437ca872463\"\u003e\u003ccode\u003e5cf1f16\u003c/code\u003e\u003c/a\u003e docs: surface the roadmap on the site home page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7e35f72d135056c37da321becf22b19aeec06937\"\u003e\u003ccode\u003e7e35f72\u003c/code\u003e\u003c/a\u003e docs: add FastCGI to the roadmap and point items at Ideas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/18ddc586c9b9513b25e92c6ed6f818f66ff3abcd\"\u003e\u003ccode\u003e18ddc58\u003c/code\u003e\u003c/a\u003e docs: drop the framework and reverse-proxy non-goals from the roadmap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/1ecae56ebd096ee4f94d12c59a36f240ce348572\"\u003e\u003ccode\u003e1ecae56\u003c/code\u003e\u003c/a\u003e docs: add a roadmap and make the chat easy to find\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ca412e3f7134bd9f0e91851778ae6d8dd222cf41\"\u003e\u003ccode\u003eca412e3\u003c/code\u003e\u003c/a\u003e docs: sync the Latest changelog page with 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/640936fb29f7bdf5665d5b7f919783bb73e2f981\"\u003e\u003ccode\u003e640936f\u003c/code\u003e\u003c/a\u003e docs: note the dependency security work in 26.1.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/26.0.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.4.0 to 3.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cp\u003eThis is a security fix release. All users of hiredis-py 3.4.x are strongly encouraged to upgrade.\u003c/p\u003e\n\u003ch1\u003e🔒 Security Fixes\u003c/h1\u003e\n\u003cp\u003eUpdates the bundled hiredis C library to \u003ca href=\"https://github.com/redis/hiredis/releases/tag/v1.4.1\"\u003ev1.4.1\u003c/a\u003e, which fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1340\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eredis/hiredis#1341\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAcknowledgements\u003c/h2\u003e\n\u003cp\u003eVulnerability discovered by He Huang (\u003ca href=\"mailto:hehuang@swin.edu.au\"\u003ehehuang@swin.edu.au\u003c/a\u003e), Swinburne University of Technology, Melbourne, Australia; discovered using NexusSan.\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/redis/hiredis-py/commit/70d83795c44558f50d9166c64b1d05311eaa8066\"\u003e\u003ccode\u003e70d8379\u003c/code\u003e\u003c/a\u003e [3.4] Bump hiredis to v1.4.1, release 3.4.1 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.4.0...v3.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.2.0 to 12.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.3.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.3.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.3.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove non-image ImageCms modes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9697\"\u003e#9697\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd release notes for SBOM and performance improvements \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9747\"\u003e#9747\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd security release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9741\"\u003e#9741\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for Python 3.15 beta wheels \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9696\"\u003e#9696\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImageFont can also be used with ImageText \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9597\"\u003e#9597\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdditional guidelines for security reports \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9659\"\u003e#9659\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFixed typo \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9636\"\u003e#9636\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded CVEs to 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9591\"\u003e#9591\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRevise development support information in README \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9583\"\u003e#9583\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd INCIDENT_RESPONSE.md \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9555\"\u003e#9555\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd STRIDE threat model to security docs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9562\"\u003e#9562\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd CVEs to 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9556\"\u003e#9556\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate README with revised security policy \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9553\"\u003e#9553\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate security policy \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9552\"\u003e#9552\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9534\"\u003e#9534\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency harfbuzz to v14.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9720\"\u003e#9720\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9653\"\u003e#9653\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v4 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9665\"\u003e#9665\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9655\"\u003e#9655\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency libavif to v1.4.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9652\"\u003e#9652\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency lcms2 to v2.19.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9651\"\u003e#9651\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency check-jsonschema to v0.37.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9650\"\u003e#9650\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate google/oss-fuzz digest to d872252 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9614\"\u003e#9614\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency lcms2 to v2.19 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9609\"\u003e#9609\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency libpng to v1.6.58 - autoclosed \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9608\"\u003e#9608\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency harfbuzz to v14 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9610\"\u003e#9610\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.20.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9599\"\u003e#9599\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9611\"\u003e#9611\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9607\"\u003e#9607\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove dependency versions to single JSON and enable Renovate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9559\"\u003e#9559\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated raqm to 0.10.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9557\"\u003e#9557\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9532\"\u003e#9532\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove matrix.os from benchmark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9735\"\u003e#9735\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove references to libavif patch \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9734\"\u003e#9734\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd benchmark tests \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9654\"\u003e#9654\u003c/a\u003e [\u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUse reshape() instead of setting NumPy array shape directly \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9728\"\u003e#9728\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/bb1d8e8ab8d29048624d96e3ee53cecf7c13d13d\"\u003e\u003ccode\u003ebb1d8e8\u003c/code\u003e\u003c/a\u003e 12.3.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e63fc481dc2e07e21d5403deafb8f1ed98a513af\"\u003e\u003ccode\u003ee63fc48\u003c/code\u003e\u003c/a\u003e Add release notes for SBOM and performance improvements (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9747\"\u003e#9747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/13b701bbab291eec4bc87ea17ba06c94e5fe3054\"\u003e\u003ccode\u003e13b701b\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5564ca72fcd59d040e270af5dcf17a0d7161c364\"\u003e\u003ccode\u003e5564ca7\u003c/code\u003e\u003c/a\u003e List methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/a0920fd384f800b5d0ba3dd29ecdeae4f1d4043b\"\u003e\u003ccode\u003ea0920fd\u003c/code\u003e\u003c/a\u003e Speed up ImageChops operations (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9738\"\u003e#9738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/07e9a6cd5336dc6cf8cae9165cd70cdd2b3e42fc\"\u003e\u003ccode\u003e07e9a6c\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.filter()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9736\"\u003e#9736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/a94578cf9649ea13e426cf7fb2b71b39ffc0dd50\"\u003e\u003ccode\u003ea94578c\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.getchannel()\u003c/code\u003e, \u003ccode\u003eImage.merge()\u003c/code\u003e, \u003ccode\u003eImage.putalpha()\u003c/code\u003e and `Image...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/53e02c43c919d149b2a154a5180079f9df18fbbb\"\u003e\u003ccode\u003e53e02c4\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.fill()\u003c/code\u003e, \u003ccode\u003eImage.linear_gradient()\u003c/code\u003e and `Image.radial_gradient...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/af037475be8634ba739744243164ba9e2c8346a6\"\u003e\u003ccode\u003eaf03747\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003eImage.resample()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9739\"\u003e#9739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5c9ca56c3e5fba52b647809fbb0986c87e73a571\"\u003e\u003ccode\u003e5c9ca56\u003c/code\u003e\u003c/a\u003e Speed up \u003ccode\u003ealpha_composite\u003c/code\u003e, \u003ccode\u003ematrix\u003c/code\u003e, \u003ccode\u003enegative\u003c/code\u003e, \u003ccode\u003equantize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9740\"\u003e#9740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.2.0...12.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 8.0.0 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e✨ Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync maintenance notifications\u003c/h3\u003e\n\u003cp\u003eredis-py now supports server-pushed \u003cstrong\u003emaintenance notifications\u003c/strong\u003e in the asyncio stack for both\nstandalone and cluster clients, bringing the async client to parity with the sync implementation.\nWhen a Redis deployment signals maintenance events (such as node migration or failover windows), the\nasync client reacts through the maintenance-notifications handler (\u003ccode\u003eredis/maint_notifications.py\u003c/code\u003e and\nits async integration under \u003ccode\u003eredis/asyncio/\u003c/code\u003e), allowing applications to adapt connection handling\nduring maintenance without downtime. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4177\"\u003e#4177\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eExpanded command coverage\u003c/h3\u003e\n\u003cp\u003eThis release adds a batch of new command surfaces across core data types and modules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLists\u003c/strong\u003e — \u003ccode\u003eLMOVEM\u003c/code\u003e / \u003ccode\u003eBLMOVEM\u003c/code\u003e for moving multiple elements between lists (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4174\"\u003e#4174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSets\u003c/strong\u003e — \u003ccode\u003eSDI...\n\n_Description has been truncated_","html_url":"https://github.com/hhhylaiii/maiagent_reply_platform/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhhylaiii%2Fmaiagent_reply_platform/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"}}]}